当前位置:编程学习 > JAVA >>

JAVA WEB前端加密 后台解密

http://sunxboy.iteye.com/blog/209156 我用了这个RSA加密,但是后台解密出来的都是乱码,有经验的说一下问题所在!
或者有没有别的方案提供一下! --------------------编程问答-------------------- http://bbs.csdn.net/topics/230053204  看看吧! --------------------编程问答--------------------
引用 1 楼 xarandy 的回复:
http://bbs.csdn.net/topics/230053204  看看吧!

我的这个是纯字母或者数字的 不存在汉子 --------------------编程问答-------------------- 可以用aes加密 --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 没解决 继续顶 --------------------编程问答-------------------- http://www.verydemo.com/demo_c89_i41437.html 这个看看 --------------------编程问答-------------------- 顶楼上的。。。 --------------------编程问答-------------------- --------------------编程问答-------------------- RSA的有成功的没有 --------------------编程问答-------------------- RSA你看看这个 http://sunxboy.iteye.com/blog/209156 --------------------编程问答--------------------
引用 10 楼 z419790859 的回复:
RSA你看看这个 http://sunxboy.iteye.com/blog/209156

我用的就是这个 完全一样的代码 到服务端就是解析出来的乱码  --------------------编程问答--------------------
引用 11 楼 haoyizsw 的回复:
Quote: 引用 10 楼 z419790859 的回复:

RSA你看看这个 http://sunxboy.iteye.com/blog/209156

我用的就是这个 完全一样的代码 到服务端就是解析出来的乱码 

只用java加密解密有乱码吗 --------------------编程问答--------------------
引用 12 楼 z419790859 的回复:
Quote: 引用 11 楼 haoyizsw 的回复:

Quote: 引用 10 楼 z419790859 的回复:

RSA你看看这个 http://sunxboy.iteye.com/blog/209156

我用的就是这个 完全一样的代码 到服务端就是解析出来的乱码 

只用java加密解密有乱码吗


只用JAVA 不会 正常 
我发现用JS加密的结果是16进制的 用JAVA加密的结果是10进制的 所以这个博客写的前端和后台的方案不是一套的应该!
我把前端的结果转换成10进制的和用JAVA加密的结果也是不一样的!求解 --------------------编程问答-------------------- 原文:zsw
JS加密:
1e884450d2b3a074d256a4dc6f2264913a03f59596011456172fb87e56563253f33ac77eddf306d55a8ed651701a7b42d4106aa8a4db9ffee2fe0a94e49556df6fbc40bbc69f2133dd9a1107f35b16d85ec4c6b75c01b7882448270c29b380dcd60f919a4462555b35b4e1226e173f9c65313acd57a16e4c1833c9a16eb7660503505ed79430f4c68a48e4cf0e92efb50decd41990826b554c529b69914c59365c38f1610b67f16d8d96afdf2c093c311ae23f2250b4c776340b766ffb41dda2a3d2a72c3c41fc6b8c35da61016beddfc03e1bea8d76586749f925e8a82d46329d344b81934ced2712db32f674ad35b4779e4ecfdc7a0efb3c6dd4b24e27e92f
JAVA加密:
1195313785808978069232600180889650181208743979827951246654139019937860775285402239025769586356948339912720134935863525637021979470602622211624884970207004658263001879549574820109610686929427145328595336569038819859152108003084437673904427642478670912430660392524621258191552220285483966936969428422603717935955353535495001204321896971588296410164255347909486173785407971017808826398702396394964029701051957132257810118394506938777834027046862692766789674738842511447257626614655054204052400471154486967001066000805825860533817847862025629923514130284362220111889515774391550937083894994292504638600334424332365140436

对JS加密的解析就是乱码,JAVA加密的进行解析能够得到原文! --------------------编程问答--------------------
引用 13 楼 haoyizsw 的回复:
Quote: 引用 12 楼 z419790859 的回复:

Quote: 引用 11 楼 haoyizsw 的回复:

Quote: 引用 10 楼 z419790859 的回复:

RSA你看看这个 http://sunxboy.iteye.com/blog/209156

我用的就是这个 完全一样的代码 到服务端就是解析出来的乱码 

只用java加密解密有乱码吗


只用JAVA 不会 正常 
我发现用JS加密的结果是16进制的 用JAVA加密的结果是10进制的 所以这个博客写的前端和后台的方案不是一套的应该!
我把前端的结果转换成10进制的和用JAVA加密的结果也是不一样的!求解



你在看下我这边可以的啊

function test()  
{  
var rsa_n= "c88de6f87b3ceeae59b3c58725366bddc6e7b8abaf633b1cd89942fc3e163c97fb7a5ca9d468a04102f79621d6b678cd96266c3c5a4ccd7eb7b79e5c1edfb3b971702ca64d5e2a292b761d5d8114836b93589f4a3fe6ad15c5fe2833a9f9405e40b85234987ebf396dee16569c2a767f7fdb6a27375f7104f638d8ab504cb68b";

setMaxDigits(131); //131 => n的十六进制位数/2+3
var key = new RSAKeyPair("10001", '', rsa_n); //10001 => e的十六进制
var password = '123456';
password = encryptedString(key, password);//美中不足,不支持汉字~
alert(password);/*password="33a957e8f0a03d1570d3fdef9c03be969c59cc025896f5c292841bc9370c4f8d0572906b9846ce74fa41f3bc610d1719cb4a113c3c5f5f5bb8405c1b20271d104434443b95f5d3857cd9e79378d83b1427f79ba9b8d7f4c91616dae8bec5d966a76faec8a746635f5f5a3ecc9fdaada5a89a59799874d35fe3453815a1226d4b";
*/
$("#div").html(password);
}  

 public static void main(String[] args) throws Exception {  
        
        String result = "33a957e8f0a03d1570d3fdef9c03be969c59cc025896f5c292841bc9370c4f8d0572906b9846ce74fa41f3bc610d1719cb4a113c3c5f5f5bb8405c1b20271d104434443b95f5d3857cd9e79378d83b1427f79ba9b8d7f4c91616dae8bec5d966a76faec8a746635f5f5a3ecc9fdaada5a89a59799874d35fe3453815a1226d4b";
        byte[] en_result = new BigInteger(result, 16).toByteArray();  
        byte[] de_test = decrypt(getKeyPair().getPrivate(),en_result);  
        StringBuffer sb = new StringBuffer();  
        sb.append(new String(de_test));  
        System.out.println(sb.reverse().toString());
    }  
--------------------编程问答-------------------- http://bbs.csdn.net/topics/390021237看看这个帖子呢 --------------------编程问答-------------------- 理由很简单么,RSA属于公钥私钥配对加密与解密,你解密不成功的根本原因就是你前台进行加密的公钥与后台进行解密的私钥不配对,你在不理解RSA工作原理的情况下,不要尝试使用它,你很可能前台随机生成一个秘钥对,完成加密,然后后台又随机生成一个秘钥对解密,这是不可能的,这样的话,RSA还有什么安全性可言?按照道理RSA应该是后台生成秘钥对,吧公钥发给前台,前台使用公钥加密,然后把密文发送到后台,使用私钥解密,这样完成公钥和私钥的加密解密的配对。

另外回复一下有说使用AES的情况,这里特别说明一下,AES是对称加密算法,秘钥同时用来加密与解密,在这个业务不适用,因为前台要完成加密,如果吧秘钥发给前台,就无安全性可言。
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,