基于springboot实现前端加密, 后端解密
技术:springboot + crypto-js
概述
实现前端加密, 后端解密, 保证前后端密文传输. 另外附带md5摘要加密, aes和des 对称加密等加密的demo.
详细
1.需求(要做什么)
实现前端加密, 后端解密, 保证前后端密文传输. 另外附带md5摘要加密, aes和des 对称加密等加密的demo, 用于扩展学习.
2.理论概述
crypto模块的目的是为了提供通用的加密和哈希算法。Nodejs用C/C++实现这些算法后,通过cypto这个模块暴露为JavaScript接口,这样用起来方便,运行速度也快。
MD5是一种常用的哈希算法,用于给任意数据一个“签名”。这个签名通常用一个十六进制的字符串表示.
Hmac算法也是一种哈希算法,它可以利用MD5或SHA1等哈希算法。不同的是,Hmac还需要一个密钥.
AES是一种常用的对称加密算法,加解密都用同一个密钥。
DES是一种对称加密算法, 运算速度快,资源消耗较少.
3. 代码分析
public static void main(String[] args){ String key = "0102030405060708"; String iv="0102030405060708"; String content = "test12321郭"; System.out.println("加密前:" + content); // 加密 String encryptResult = encrypt(content, key,iv); System.out.println("加密后:" + encryptResult); // 解密 String decryptResult = decrypt(encryptResult, key,iv); System.out.println("解密后:" + decryptResult); String content2 = "6BC5750B2BCC8A8F99A3FA03E01E9AD4"; // 解密 String decryptStr = decrypt(content2,key,iv); System.out.println("解密后:" + decryptStr); } /** * 加密 * * @param content * 需要加密的内容 * @param password * 加密密码 * @return */ public static byte[] encryptByte(String content, String password ,String iv) { try { //key SecretKeySpec key = new SecretKeySpec(password.getBytes(Charset.forName("utf-8")), "AES"); //iv向量 byte[] ivByte = iv.getBytes(Charset.forName("utf-8")); // 使用CBC模式,需要一个向量iv,可增加加密算法的强度 IvParameterSpec ivParamters = new IvParameterSpec(ivByte); //初始化Cipher "算法/模式/补码方式" Cipher cipher = Cipher.getInstance("AES/CBC/PKCS7Padding"); cipher.init(Cipher.ENCRYPT_MODE, key, ivParamters); //内容 byte[] byteContent = content.getBytes(Charset.forName("utf-8")); byte[] result = cipher.doFinal(byteContent); return result; } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } catch (InvalidAlgorithmParameterException e) { e.printStackTrace(); } return null; }
4.项目文件结构截图
5.启动项目
eclipse导入maven项目springboot-encode, 待maven依赖jar包加载完成后.
启动项目,右击DemoApplication --> run as -->Java Application, 启动成功后访问: http://localhost:8000
本实例支付的费用只是购买源码的费用,如有疑问欢迎在文末留言交流,如需作者在线代码指导、定制等,在作者开启付费服务后,可以点击“购买服务”进行实时联系,请知悉,谢谢
手机上随时阅读、收藏该文章 ?请扫下方二维码