uniapp小程序前后端注册登录:AES与RSA加密实战

需积分: 5 1 下载量 134 浏览量 更新于2024-06-20 收藏 146KB DOCX 举报
在实现前后端交互的注册登录功能中,安全性是一个关键因素。本文主要关注的是如何处理密码的加密问题,尤其是在前端使用微信小程序(通过uniapp可以扩展到移动应用)的情况下。前端采用AES加密算法对用户密码进行处理,后端则使用更高级别的RSA加密来保护敏感数据。 前端注册流程: 1. 用户点击注册按钮时,前端首先获取输入的用户名,然后向后端发起请求。 2. 后端接收到请求后,生成一个随机秘钥(key)和偏移量(iv),以及一个状态值(status)。status用来检查用户是否存在,如果是1表示用户已存在,0表示新用户。 3. 前端根据后端返回的key和iv,使用AES加密算法对用户的密码进行加密,确保即使在传输过程中被截获也无法直接读取。 4. 加密后的用户名和密码作为一组数据发送给后端,如果验证成功,后端会返回status: ok。 后端操作: - 如果status为1,说明用户已存在,无需进一步操作。 - 如果status为0,即新用户,后端会接收前端发送的加密后的密码,再次使用AES算法进行加密,但这次使用的是更安全的RSA加密技术,然后存储在MySQL数据库中。这里使用的是CBC模式,确保数据在存储时的完整性。 数据库设计与加密工具: - 数据库使用MySQL,为了提高安全性,密码字段存储的都是经过后端RSA加密后的值。 - 文档中提供了AES加密的JavaScript函数,包括加密(Encrypt)和解密(Decrypt)两个部分,分别使用Crypto-js库来执行AES加密/解密操作。AES加密时使用CBC模式和PKCS7填充,确保了加密过程的安全性。 总结来说,这个注册登录流程采用了分层次的加密策略,前端使用AES加密来增强传输过程中的保密性,后端使用RSA加密保证数据在存储环节的安全。这种方式有效地保护了用户的隐私,确保了在前后端交互过程中,密码等敏感信息不会被轻易窃取或篡改。同时,数据库设计也遵循了最佳实践,增强了系统的整体安全性。