当前位置:   article > 正文

AES对称加密、解密工具_aes加密解密工具

aes加密解密工具

 需提前引入依赖:

  1. <dependency>
  2. <groupId>cn.hutool</groupId>
  3. <artifactId>hutool-all</artifactId>
  4. <version>5.8.15</version>
  5. </dependency>
  1. import cn.hutool.crypto.CryptoException;
  2. import cn.hutool.crypto.symmetric.AES;
  3. import java.nio.charset.StandardCharsets;
  4. /**
  5. * @author rikka
  6. * AES加密、解密工具(以当前时间戳作盐)
  7. * */
  8. public class AesUtil {
  9. /**
  10. * 加密,适用于IOS等移动端(PKCS7Padding)
  11. * @param key 加密密钥,AES明文规定密钥长度必须16字节
  12. * @param content 加密内容
  13. * */
  14. public static String doEncrypt(String key, String content) {
  15. //文本直接加密仍有风险,这里以当前时间戳作前缀手动加盐
  16. content = System.currentTimeMillis() + content;
  17. AES aes = new AES("ECB", "PKCS7Padding",
  18. key.getBytes(StandardCharsets.UTF_8));
  19. try {
  20. // 加密为16进制表示
  21. return aes.encryptBase64(content.getBytes(StandardCharsets.UTF_8));
  22. }catch (CryptoException e) {
  23. e.printStackTrace();
  24. throw new RuntimeException("密钥必须是16字节!");
  25. }
  26. }
  27. /**
  28. * 解密
  29. * @param key 加密密钥
  30. * @param content 需解密内容
  31. * */
  32. public static String doDecrypt(String key, String content) {
  33. AES aes = new AES("ECB", "PKCS7Padding",
  34. key.getBytes(StandardCharsets.UTF_8));
  35. try {
  36. //时间戳为13位数字,13位后的为加密内容
  37. return aes.decryptStr(content).substring(13);
  38. } catch (CryptoException e) {
  39. e.printStackTrace();
  40. throw new RuntimeException("密钥必须是16字节!");
  41. }
  42. }
  43. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/羊村懒王/article/detail/511706
推荐阅读
相关标签
  

闽ICP备14008679号