1、背景
实现所有网站都有的会员注册、会员登录功能。当实现时,需要保证数据在传输过程中的安全,需要把会员提交的密码进行rsa加密,当会员登录需要自动登录时,还需要对生成的cookies进行aes密钥的rsa加密解密。
2、实现过程
1》、会员注册功能
会员填写手机号码,输入图形验证码后,获取手机验证码,填写手机验证码后,输入2次会员密码,然后提交注册,在提交前,使用js,进行rsa获取到公钥,对会员的2次密码都加密传输,然后在后台进行rsa解密,再进行md5的加密,最后创建会员信息,存入db,直接转成登录状态。
2》、会员登录功能
会员填写手机号码,输入密码后,勾选7天内,或者30天内自动登录,这时,就会使用js获取公钥,对提交的密码进行rsa加密传输,然后在后台进行rsa解密,再使用md5进行比较db中的密码,如果发现需要自动登录,对存入cookies的内容进行加密,使用的是当前用户的手机号码以及当前用户最后一次登录的时间点进行特征码比对,只有比对成功,才能为该会员提供自动登录功能,否则登录失败,并跳转到会员登录页面。
3、结论
rsa结合aes的加密解密方式,能够比较安全的对所传输的内容进行加密解密,这个方案,也适合使用在对外提供app的api接口和http接口时的数据传输上,都可以对所传输的参数内容或者返回的内容进行加密解密。所以rsa虽然耗时,但只要把密钥进行aes加密,内容通过aes加密,就可以很好的减少rsa传递内容过多的消耗问题。
4、案例