Tag: 密码术

我如何解密在PHP中由npm-rsa创build的数据?

我用JSencryption浏览器中的数据,然后试图用PHP在后端解密。 在JS中,我使用了使用browserify构build的npm-rsa。 在PHP中,我使用phpseclib 我的JS: key = new rsa({ environment: 'browser', encryptionScheme: 'pkcs1_oaep', signingScheme: 'pkcs1-sha256', b: 2048 }); cleartext = 'this is a test'; console.log(key.encrypt(cleartext, 'base64')); console.log(this.key.exportKey('pkcs8-private-pem')); 然后我把公钥和密文带到PHP中: $rsa = new RSA(); $rsa->load($privkey, 'pkcs8'); $cleartext = $rsa->decrypt(base64_decode($cyphertext)); 当我运行这个, $cleartext为null 。 使用Xdebug,我可以看到$rsa->load($pubkey, 'pkcs8'); 似乎是填充$rsa的模数,指数,素数,系数等字段。 我甚至试过$rsa->setHash('sha256'); 之前调用decrypt() ,但是我的理解是哈希方法只用于encryption,甚至不用于解密。 另外,我知道这是不安全的,因为我分享私钥。 我只是想validation两个库之间的兼容性。 我已经testing过,我可以使用这两个库独立encryption和解密,但从JS库的密钥到PHP库我无法去工作。 编辑:导出私钥: —–BEGIN PRIVATE KEY—– MIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDX7/224Phogd/B 4DGOf81GeNAkE0bAWieN9Tmq6S1Xe0iMY56J9hJ86HveCcJcJCMNAJtGVPjOObNf HZ58CUrqyMoj6VJ8wXGVPZuwkvBQrVFg4k/h+8+b3p5Z0cb8J9m8WWpnL/hifoyt […]

使用NodeJS解包PKCS#7数据有效载荷?

我正在为iOSdevise一个MDM NodeJS服务器。 在Apple文档中,给出了下面的ruby代码: p7sign = OpenSSL::PKCS7::PKCS7.new(req.body) store = OpenSSL::X509::Store.new p7sign.verify(nil, store, nil, OpenSSL::PKCS7::NOVERIFY) signers = p7sign.signers NodeJS中的等价物是什么? 这个想法是访问包含一个xml plist的p7sign.data 。 这可能使用crypto或外部节点库( ursa等)?