前后端数据传输加密简单总结

结论:不使用HTTPS,单纯对密码加密传输,是无法保证安全的。

写了一个简单的 RSA加密DEMO(包含 Java后台,web前端,Android,iOS)

https://github.com/luffyjet/RSAEncSignDemo

密码加密传输的一些意义。

1、数据库不存原密码,也防止被存原密码;

2、防止数据库被黑后造成密码泄露的问题;

3、hash后的密码格式统一,减少麻烦;

4、防止原密码被利用在其他平台,减少在其他平台的信息泄露(很多用户习惯在其他平台注册时使用相同的密码,太多密码时怕忘记。被抓的hash密码,也就只能在我网站用,其他网站也用不了);

5、防止原密码暴露,伤害了用户感情(谁都不想自己的密码被人知道)。

web前端的加密手段

1.前后端使用RSA加密关键数据。支付类应用使用较为常见。开源RSA加密库jsencrypt

2.验证码结合密码进行MD5加密,可以有效的解决重放问题。参考

3.以上的方式都要配合前端js的混淆加密,增加破解的复杂度,才有意义。参考

Android端的加密手段

1.对代码混淆,增加破解难度

2.套壳加固,进一步增加破解难度

3.关键加密代码,用c++编写封装到so,增加破解难度

4.使用加密算法加密请求参数,如:MD5,RSA等,RSA参考

5.使用 HTTPS

iOS加密

1.对代码混淆,增加破解难度

2.套壳加固,进一步增加破解难度

3.使用加密算法加密请求参数,如:MD5,RSA等

4.使用 HTTPS

几个讨论:

Web前端密码加密是否有意义?

前端如何给 JavaScript 加密

分享到 评论