V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
sxfscool
V2EX  ›  问与答

PHP 接 Java 的加密接口,各位大佬帮忙看看这是怎么签名的

  •  
  •   sxfscool · 2019-08-16 09:07:30 +08:00 · 1270 次点击
    这是一个创建于 1958 天前的主题,其中的信息可能已经有所发展或是发生改变。

    明文是 hello world 的字符串,签名结果是

    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
    

    不同的原文得到的签名结果开始都一样( MIAGCS ),文档原文说的 是签名使用己方私钥以 PKCS7 签名格式(不包含原文)生成,签名算法为 SHA256withRSA, 将字节数 组进行 Base64 编码转换为文本 但是我用 openssl_sign 签名出的结果完全不一样,大佬们知道在 php 里怎么得到这种签名么?

    2 条回复    2019-08-16 11:04:36 +08:00
    mzeht
        1
    mzeht  
       2019-08-16 10:47:34 +08:00
    对方是他的私钥 rsa 加密然后 base64 你需要 base64 解开 然后用你的公钥去 check 挺常规的
    jay4497
        2
    jay4497  
       2019-08-16 11:04:36 +08:00
    建议使用 phpseclib 这个库,PHP 自带的有些加密好像不是很通用。。。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3020 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 23ms · UTC 14:24 · PVG 22:24 · LAX 06:24 · JFK 09:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.