php 和 java .net对接加解密,rsa方式
最近和.net的程序员对接接口,加解密用的是rsa的方式进行加解密,中间遇到许多坑,搞了足足两三天,怎么搞都不行; 大家都知道,rsa加解密无非就是用公钥加密私钥解密,或者私钥加密公钥解密; php的openssl如果用公钥加密的话,每次生成同一字符串的rsa的结果是不同的,但是都可以用私钥解密出来,这个因为有个填充,每次随机填充导致每次生成的结果都不同; 但是.net每次生成的都是一样的,这就很蛋疼,一样的加密方式,用的一样的公钥私钥,我生成的他解不出来。。他生成的我识别不了。
最后问了问java的小伙伴,问他根据公钥生成字符串每次会变化吗,他说不会变; 后来研究研究php的openssl的函数; 得出结果,因为有填充,所以才导致他每次都会变化,于是把填充干掉;上菜
1、首先要生成一个rsa的公私钥
首先d函数只是自己封装的一个打印函数而已,可以不用在意; 这样我们就生成一个公私钥; 可以把他存pem文件里面或者写在配置文件里面都可以;
先说一下,在php中加解密的方式
这样在php中是可以完美运行,但是在和其他语言对接的时候就蛋疼了
其次进行生成不变化的字符串
看看用什么方式 base64啥的自行解决,如果不出意外的话,这样是可以满足需求的
蛋疼。。。。。。