您好我正在编写需要加密的Android应用程序。 在Android上,我使用以下代码生成RSA密钥对; p>
KeyPairGenerator kpg = KeyPairGenerator.getInstance(“RSA”);
SecureRandom r = SecureRandom.getInstance(“SHA1PRNG” );;
kpg.initialize(2048,r);
KeyPair kp = kpg.generateKeyPair();
Utils.File.write(szPri,kp.getPrivate()。getEncoded());
Utils.File.write(szPub) ,kp.getPublic()。getEncoded());
code> pre>
My Utils.File创建两个二进制文件,一个是私钥,另一个是public。 我将这两个文件传输到我的开发PC进行测试,并且基本上想要使用PHP来加密一个小的消息所以扭曲以下的PHP代码; p>
<?php
\ n $ dev =“Emulator_96d68aa8156345d0”;
$ sz =“Duncan var Her”;
echo“测试客户端生成密钥
”;
echo $ dev。“
”;
$ cpublic_der = file_get_contents ($ dev。“/ public”);
$ cprivate_der = file_get_contents($ dev。“/ private”);
$ cpublic_pem = der2pem($ cpublic_der);
echo $ cpublic_pem。“
”; \ n
if(openssl_public_encrypt($ sz,$ encsz,$ cpublic_pem)== true){
echo $ sz。“
”;
echo“ok
”;
}
函数der2pem($ der_data){
$ pem = chunk_split(base64_encode($ der_data),64,“
”);
$ pem =“----- BEGIN CERTIFICATE -----
”。$ pem。“ ----- END CERTIFICATE -----
“;
返回$ pem;
}
?>
code> pre>
消息 来自php PHP警告:openssl_public_encrypt():key参数不是有效的公钥 p>
我做错了什么? p>
Duncan p>
div>