当前位置:   article > 正文

Flutter AES加密

flutter aes

目前在学习Flutter相关知识,在开发过程中遇到的第一个问题就是AES加密,网上Java有很多成熟的工具可以用,但是关于Flutter的AES加密还是费了不少功夫才找到相关方法,于是做下记录。

言归正传,步骤如下:

1、在项目的pubspec.yaml添加依赖库

  encrypt: ^5.0.0

添加位置如下图

2、定义一个Aes.dart文件,内容如下

  1. import 'package:encrypt/encrypt.dart' as Encrypt;
  2. import 'package:encrypt/encrypt.dart';
  3. const String _key = '3dd19414e91ac01b';
  4. const String _iv = '2624b9a9c447e587';
  5. ///aes加密函数
  6. String aesEncode(String content) {
  7. //加密文案
  8. String data =
  9. '{"OperatorID":"757915977", "OperatorSecret":"91b27d564852a1b"}';
  10. //加密key
  11. final key = Encrypt.Key.fromUtf8(_key);
  12. //偏移量
  13. final iv = Encrypt.IV.fromUtf8(_iv);
  14. //设置cbc模式
  15. final encrypter = Encrypt.Encrypter(
  16. Encrypt.AES(key, mode: Encrypt.AESMode.cbc, padding: 'PKCS7'));
  17. //加密
  18. final encrypted = encrypter.encrypt(data, iv: iv);
  19. //解密
  20. final decrypted = encrypter.decrypt(encrypted, iv: iv);
  21. print(decrypted);
  22. print(encrypted.base64);
  23. aesDecrypted('');
  24. return encrypted.base64;
  25. }
  26. /// 解密函数
  27. String aesDecrypted(String data){
  28. //加密key
  29. final key = Encrypt.Key.fromUtf8(_key);
  30. //偏移量
  31. final iv = Encrypt.IV.fromUtf8(_iv);
  32. //设置cbc模式
  33. final encrypter = Encrypt.Encrypter(
  34. Encrypt.AES(key, mode: Encrypt.AESMode.cbc, padding: 'PKCS7'));
  35. //解密
  36. print( "解密后的结果:"+encrypter.decrypt(Encrypted.fromBase64(data), iv: iv));
  37. return encrypter.decrypt(Encrypted.fromBase64(data), iv: iv);
  38. }

3、校验加密和解密效果,通过在线加密比对发现加密结果是一致的

在线加密链接:http://tool.chacuo.net/cryptaes/

 

通过比对加密结果一致,然后再测试解密,拿代码加密后的结果放到在线加密网址里进行解密,结果如下:

如果能帮助正在迷惑的你,记得点赞关注哈,

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

闽ICP备14008679号