前台js加密,后台php解密 有什么安全性高的方式

前台提交表单对字段进行加密,
后台用php解密,有什么好的加密方式吗?
谢谢!

阅读 10k
6 个回答

前台使用js加密,后端使用php解密这种情况下并没有什么安全性特别高的方式,毕竟前端的js是开放源码的,不管采用什么加密方式总是能够通过分析源码进行破解,而采用秘钥的方式则秘钥是对用户公开的,任何人都可以使用秘钥伪造数据,也无法实现安全的加密。

一般需求的话可以简单的使用一些源码混淆就可以了,真的安全性要求高的地方使用js加密是不太靠谱的。当然,为了解决请求传输途中被拦截篡改,数据泄露的风险,启用https倒是一个很好的方式。

前端加密没有意义,理论上都可以通过分析你的代码进行破解。如果担心数据传输过程中的安全,可以走HTTPS。

其实加密算法都是公开的,唯一需要保护的是密钥,如果确实想在前端做加密,那么可以使用动态密钥:

  1. 发请求到服务器,服务器创建一个密钥,并分配一个唯一的密钥ID,返回到前端。

  2. 前端用密钥加密数据,将加密后的数据和密钥ID发送到服务器。

  3. 服务器根据密钥ID查询到密钥,然后用密钥解密。

具体加密算法可以根据自己的需要进行选择,AES DES TEA什么的都可以。

$key = '自定义选40个字符就可以了';
md5(sha1($str) . $key);

RSA加密+HTTPS

RSA加密是非对称密码算法的...
使用前生成公钥和私钥...公钥放在前端加密...私钥后端放在服务器解密...
只要私钥不泄露,一般情况下是无法解密的

HTTPS也使用RSA算法加密,通常使用HTTPS就足够了。
没有相应的SSL证书(私钥)是连请求内容都解密不出来的

如果处于各种因素无法使用HTTPS协议的话,就是尝试直接使用RSA加密吧

这只是一个思路,没有实践过,需要楼主自行寻找相应PHP、JS相应的加解密库

1.首先要考虑的是跨语言使用,要可以相通的加密,解密
2.若前台传输的不是重要的数据,可以使用https://jwt.io/ 参考

在JS与PHP之间使用CryptoJS和mcrypt进行加密传输

对于安全性:
如果是走http的网页,那么完全性不高。js脚本是明文传输的,加密和混淆都只增加解密困难,不能杜绝被劫持。传输过程中被劫持的话会被分析,或者更干脆把你的js脚本替换掉,那么你前端的安全性就没了。
如果是客户端的话,这个方法会比较有用。

对于加密协议:
AES是我的首选。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题