读取 php 中的 Android 个加密密钥
Read Android Crypto keys in php
您好,我正在编写一个需要加密的 android 应用程序。在 Android 上,我使用以下代码生成了一个 RSA 密钥对;
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());
我的 Utils.File 创建了两个二进制文件,一个使用私钥,另一个使用 public。我将这两个文件传输到我的开发 PC 上进行测试,基本上想使用 PHP 来加密一条小消息,因此使用以下 PHP 代码;
<?php
$dev="Emulator_96d68aa8156345d0";
$sz="Duncan var Her";
echo "Test Client generated key's\n";
echo $dev."\n";
$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."\n";
echo "ok\N";
}
function der2pem($der_data) {
$pem = chunk_split(base64_encode($der_data), 64, "\n");
$pem = "-----BEGIN CERTIFICATE-----\n".$pem."-----END CERTIFICATE-----\n";
return $pem;
}
?>
来自 php 的消息 PHP 警告:openssl_public_encrypt():密钥参数无效 public 密钥
我做错了什么?
邓肯
尝试将 -----BEGIN CERTIFICATE-----
更改为 -----BEGIN PUBLIC KEY-----
或 -----BEGIN RSA PUBLIC KEY-----
。与END相同。
您好,我正在编写一个需要加密的 android 应用程序。在 Android 上,我使用以下代码生成了一个 RSA 密钥对;
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());
我的 Utils.File 创建了两个二进制文件,一个使用私钥,另一个使用 public。我将这两个文件传输到我的开发 PC 上进行测试,基本上想使用 PHP 来加密一条小消息,因此使用以下 PHP 代码;
<?php
$dev="Emulator_96d68aa8156345d0";
$sz="Duncan var Her";
echo "Test Client generated key's\n";
echo $dev."\n";
$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."\n";
echo "ok\N";
}
function der2pem($der_data) {
$pem = chunk_split(base64_encode($der_data), 64, "\n");
$pem = "-----BEGIN CERTIFICATE-----\n".$pem."-----END CERTIFICATE-----\n";
return $pem;
}
?>
来自 php 的消息 PHP 警告:openssl_public_encrypt():密钥参数无效 public 密钥
我做错了什么?
邓肯
尝试将 -----BEGIN CERTIFICATE-----
更改为 -----BEGIN PUBLIC KEY-----
或 -----BEGIN RSA PUBLIC KEY-----
。与END相同。