加解密设计
1.1 设计背景
HTML5页面和java后端交互,为了信息安全和保密,需要做到前后端双向加解密。
1.2 专业术语
RSA:RSA加密算法是一种非对称加密算法。
AES:高级加密标准(AES,Advanced Encryption Standard)为最常见的对称加密算法。
SHA1withRSA:用SHA算法进行签名,用RSA算法进行加密,是一种签名算法。
公钥和私钥:公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。
1.3 方案对比
加密方案 | 前后端都用RSA非对称加密 | 采用RSA和AES组合加密 |
---|---|---|
实现方式 | 前后端都保存自己的私钥和对方的公钥,公钥加密私钥解密 | 前端保存后端生成的RSA公钥,每次请求都用AES密钥加密,AES密钥用RSA公钥加密。后端用RSA私钥解密AES密钥,然后用AES密钥解密请求数据。响应数据用AES密钥加密,AES密钥用RSA做加签,前端验签,然后解密。 |
前端暴露 | 自己的私钥,后端的公钥 | 后端的公钥 |
安全性 | 因为前端暴露了自己的私钥,将使后端的加密不安全 | 只暴露了后端的RSA公钥,AES密钥是用RSA公钥加密的&#x |