Java向PHP发送公钥并加密数据
所以我有一个Java公钥,我需要向服务器发送一个post请求,其中包含密钥,然后读取密钥服务器端,并发送一些用它加密的数据 我成功地做到了: 生成密钥对(duh) 在Java程序中使用它加密和解密数据 也许:用它做一个pem格式的密钥,我不确定Java向PHP发送公钥并加密数据,java,php,encryption,rsa,public-key-encryption,Java,Php,Encryption,Rsa,Public Key Encryption,所以我有一个Java公钥,我需要向服务器发送一个post请求,其中包含密钥,然后读取密钥服务器端,并发送一些用它加密的数据 我成功地做到了: 生成密钥对(duh) 在Java程序中使用它加密和解密数据 也许:用它做一个pem格式的密钥,我不确定 String phpPublic = ("-----BEGIN PUBLIC KEY-----"+Base64.encodeToString(MainActivity.instance.rsa.readPublicKeyFromFile(MainActi
String phpPublic = ("-----BEGIN PUBLIC KEY-----"+Base64.encodeToString(MainActivity.instance.rsa.readPublicKeyFromFile(MainActivity.instance.rsa.PUBLIC_CLIENT_KEY_FILE).getEncoded(),Base64.DEFAULT)+"-----END PUBLIC KEY-----");
我想是这样,但我不确定!将私钥转换为pem的过程是否相同,只是在页眉和页脚中设置PUBLIC->private。
我不知道转换为pem是否真的有必要,如果不是,请建议更好的方法
这就是我在PHP中所做的,但我99%确信这是错误的
$PubKey = openssl_pkey_get_public($publicPem);
$encrypted;
openssl_public_encrypt($toEncode, $encrypted, $PubKey);
echo $encrypted;
对不起,我的英语不好(如果有的话)!
Thx前进!
说真的,罗伯托,你能发布一个示例密钥吗 我认为你在这方面会更成功。它支持的密钥格式比openssl多得多,而且它还可以自动检测密钥类型 例如:
<?php
include('Crypt/RSA.php');
$rsa = new Crypt_RSA();
$rsa->loadKey('...');
$rsa->setSignatureMode(CRYPT_RSA_SIGNATURE_PKCS1);
echo $rsa->encrypt('whatever');
有什么问题?你试过运行那个代码吗?您是否得到错误的结果或错误?它表示对象不是键