jsp网页前后端传输数据都有哪些加密方式?
没有加密方式。
你可以考虑使用https协议进行安全的传输,但是数据加密就算了。
理由:任何语言最终都会形成html,事实上前端也只能处理html,css,js代码,其他如java,php,c#都是在后端工作的,在html通过web服务器发送给访问者的时候已经脱离了后端的控制。因此前端的唯一加密手段就是js,但是js是明文的,也就是说你的加密过程是透明的,自然完全没有破解难度。当然,md5之类的单向加密依然无法破解,问题是后端拿到单向加密的数据完全没用,因为它推导不出原始数据是什么。所以,要安全就用https。
如果你的目的仅仅是对比可以考虑md5,例如后端发送密钥给前端,同时存根,前端将用户密码进行md5加密,然后与密钥进行字符连接并再次md5,然后发送给后端,后端也进行相同的处理,然后比对,从而完成密码验证,全过程无明文密码传输。
10 回答11.6k 阅读
2 回答3.1k 阅读✓ 已解决
3 回答2.6k 阅读✓ 已解决
3 回答2.4k 阅读✓ 已解决
2 回答2.1k 阅读✓ 已解决
4 回答2.1k 阅读✓ 已解决
3 回答1.2k 阅读✓ 已解决
前后端传输要加密,只能采用非对称加密才安全,如果要自己实现,有JS的加密类库 RSA in JavaScript
相关内容可以参考我的博客:Web应用中保证密码传输安全
不过自己实现这个数据加密实在麻烦,所以建议明文传输,在发布时强制使用 HTTPS 协议安全传输。
顺便澄清其他人回答的一些问题:
Base64 不是种加密方式,只是种编码方式,发明的目的是把二进制编码为纯文本。由于它的运算过程中没有密码,所以经过 Base64 编码的数据可以直接解码出来,完全无保密性可言
MD5/SHA1 等摘要算法(或者说哈希算法、散列算法)可用于加密,它的特点是单向,只能加密不能解密。所以一般只用于对密码的加密,因为同样的内容通过同样的摘要算法,得到的结果是一样的。而不同的的内容计算后得到相同结果的概率极低,可以忽略。如果仍然需要降抵撞码概率,可以同时保存几种摘要算法对同一个内容的计算结果,不同的内容几种摘要算法结果完全相同的概率基本上不存在。
加盐的摘要,通常使用 HMAC 算法,HMAC 是基于普通摘要的,所以根据使用的摘要算法不同又分为 HMAC-MD5、HMAC-SHA1 等。这个就不细说了。