现在是这样的,这边(公司A)有一个东西以前外包给公司B做了,那边用的是ASP,公司这边用的是PHP,
现在使用现在B需要,现在A生成了私钥和公钥(参考http://blog.csdn.net/clh604/article/details/20224735),提供给B公钥,请问B用asp中的rsa加密函数和这个公钥加密出来的密文,A能不能用php自带的rsa解密函数和私钥解出来
菜鸟没分,求有相关经验的大神解惑(主要是PHP和ASP中的RSA算法是不是共通的?)
回复讨论(解决方案)
现在是这样的,这边(公司A)有一个东西以前外包给公司B做了,那边用的是ASP,公司A这边用的是PHP,
现在A生成了私钥和公钥(参考http://blog.csdn.net/clh604/article/details/20224735),提供给B公钥,请问B用asp中的rsa加密函数和这个公钥加密出来的密文,A能不能用php自带的rsa解密函数和私钥解出来
菜鸟没分,求有相关经验的大神解惑(主要是PHP和ASP中的RSA算法是不是共通的?)
asp 没有提供加密算法,asp.net 提供了加密算法
如果 asp 使用的是依据加密算法摹写的,那么除非能实现到 php 的移植,一般不可用php提供的加密函数
asp 没有提供加密算法,asp.net 提供了加密算法
如果 asp 使用的是依据加密算法摹写的,那么除非能实现到 php 的移植,一般不可用php提供的加密函数
这个私钥和公钥是openssl生成的,B用c#和这个公钥将一段字符串加密之后的密文,A能用私钥和PHP解开吗
理论上是可以的,只要算法实现上是一样的
你应该给出 C# 的代码、公钥与私钥和若干组明文和密文
理论上是可以的,只要算法实现上是一样的
你应该给出 C# 的代码、公钥与私钥和若干组明文和密文
//私钥
$private_key = '-----BEGIN RSA PRIVATE KEY-----
MIICWwIBAAKBgQCpQ6CMgJe7NmXHpNPFcqdX1hsZQZH5j3WN2hRdfBTG5nQH8ifS
4+BVqifL0JjuffZdHJXqGQon4HD9i64cQ6Ps0kgbAMfNWsvhC+IJYAfH7hBRmB/d
1J4Bucr0o+diWp+7Vmp+QS9H5n6WxvSYglySFXvn5Z5FStWZGuoO3VgIwQIDAQAB
AoGAXvGRJ96lvZyIwNCi/TkPxwRRFPyjvgGLZfMywzFrkhoIccCSOAgceNDGG9w5
PGWpgJcdPD+pY67Qklf8ZNxIIQ/CYO+YB20dyio138jNLFTRmvUbzkK+9g1h0LF1
ksbK5sfTPLplK4lKbowDK9XiuSGJThOiN5qEiiWCNMlgowECQQDfZhWxVh7jzlyU
MuLvc8ZzgSdNJaH3upx8asFspvqXFpuj/GYaMuEwFfT4Mz9QTgT8zeaij/zpivTN
I3bEKeYRAkEAwfcjLb75RSCUKD1d84cUcQauZmyCRymu/C4/Whxr1AO0lIUc94cU
sgkdxqMnbJPca5+rQE9aDmf9cslUMj2HsQJAIh1cwq/8F52z1Y3PyfFMJOdcMRPG
ICaHLxi+YPE+40O4kNpCXU3XxZgUyLJKwOCpMlHfHoQOgzuNFqaLxHkBgQJAW6Rc
Zpy4QUTnOyvjW9AShGRXueTCmMTE/DkNjZGoEH+/rfxGd1zHFmbgPp2PXultVxwV
WUkkj3HqeXVN5n7TwQJAaySbpZjetKJjx33a/jbLY26OczTtAw5t4FK84x8ka29r
wEuqs5+e2eanroktyeiLi8j/difKHDSWdTD+TiJqoA==
-----END RSA PRIVATE KEY-----';
//公钥
$public_key = '-----BEGIN PUBLIC KEY-----
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCpQ6CMgJe7NmXHpNPFcqdX1hsZ
QZH5j3WN2hRdfBTG5nQH8ifS4+BVqifL0JjuffZdHJXqGQon4HD9i64cQ6Ps0kgb
AMfNWsvhC+IJYAfH7hBRmB/d1J4Bucr0o+diWp+7Vmp+QS9H5n6WxvSYglySFXvn
5Z5FStWZGuoO3VgIwQIDAQAB
-----END PUBLIC KEY-----';
";echo "私钥加密:
";openssl_private_encrypt($data,$encrypted,$pi_key);//私钥加密$encrypted = base64_encode($encrypted);//加密后的内容通常含有特殊字符,需要编码转换下,在网络间通过url传输时要注意base64编码是否是url安全的echo $encrypted,"
";echo "公钥解密:
";openssl_public_decrypt(base64_decode($encrypted),$decrypted,$pu_key);//私钥加密的内容通过公钥可用解密出来echo $decrypted,"
";echo "公钥加密:
";openssl_public_encrypt($data,$encrypted,$pu_key);//公钥加密$encrypted = base64_encode($encrypted);echo $encrypted,"
";echo "私钥解密:
";openssl_private_decrypt(base64_decode($encrypted),$decrypted,$pi_key);//私钥解密echo $decrypted,"
";?>
结果:
你确定这样的加密可以成功吗,明文长度不会超长报错吗,我现在用了个分段加密,传到JAVA那边,返回来的密文解不开了,蛋疼