企业网站建设思路,网页设计的尺寸是指,网页设计作业制作与,旅游网站建设流程是什么意思结合RSA与AES实现前后端加密通信一、思路使用RSA秘钥生成工具生成一对公钥(A)和私钥(B)#xff0c;前端保留A#xff0c;后端保留B。前端发送数据时#xff0c;先生成一串随机16位字符串作为AES的秘钥(C)#xff0c;然后使用A使用RSA算法对C进行加密#xff0c;得到加密后…结合RSA与AES实现前后端加密通信一、思路使用RSA秘钥生成工具生成一对公钥(A)和私钥(B)前端保留A后端保留B。前端发送数据时先生成一串随机16位字符串作为AES的秘钥(C)然后使用A使用RSA算法对C进行加密得到加密后的AES秘钥(D)。将要发送的数据(E)用C使用AES加密得到密文(F)。将D和F一同发给后端进行处理。后端处理数据时先用B对D使用RSA进行解密得到C用C对F使用AES进行解密得到E处理后得到结果G再用C对G进行AES加密得到H将H返回给前端。前端接收到H后用C进行解密得到处理的结果G。因为对数据进行加密的AES秘钥是每次请求随机生成的而且传输过程中AES是使用非对称加密的只要后端持有的RSA私钥不泄露即可保证数据通信安全。图2 后端加解密数据流图图1 前端加解密数据流图二、前端组件的使用1、引入插件① 引入AES对称加密插件npm i --save crypto-js② 引入RSA非对称插件npm i --save jsencrypt2、新建encrypt.js 页面进行封装 及使用Encrypt.js封装导出内容如图使用AES加密 使用 Encrypt()方法进行加密传入两个参数encrypted和keykey是随机生成的16位字符串encrypted为需要加密的内容最后return出加密结果AES解密 使用Decrypt()方法进行解密传参data和keykey为随机生成的16位字符串(同加密时的key一致)data为后端返回AES加密字段return解密string类型结果RSA加密encryptRsa()方法进行加密根据后端提供公钥与随机生成的key值进行加密输出加密结果三、后端模块的使用1.使用使用Decrypt注解进行解密使用Encrypt注解进行加密其中value属性写入需要加解密的字段(以EL的形式)其中若需要对方法返回值加解密需要{return}的方式。type属性指出需要哪种加解密方法。如图需要对getUser()方法的s参数进行解密对返回值进行加密加密方式为 EncryptType.Controller_RSA_AES。2.新增/修改加密方式在枚举类EncryptType中添加新的枚举方法即可枚举类中有三个抽象方法encrypt()、decrypt()、getKey()新增的枚举需要实现这三个方法。对注解的拦截是DecryptAspect和EncryptAspect类这是两个切面。拦截两个注解标注的方法后将value值交给SPEL解析器解析后修改对应的值。