flutter获取字符串和json或者map的md5值

从服务端获取的数据,想要和本地已经存在的数据做对比,如果不一致就更细数据,如果一致,就不做任何修改,这个时候数据可能是复杂的json数据,不能一项一项对比,效率太低了,所以就想使用一种更高效的对比方式,就想到了md5唯一校验。使用的依赖库是crypto,官方地址:crypto | Dart Package

这个依赖库不止可以获取md5,还可以获取到更多:

SHA-1

SHA-224

SHA-256

SHA-384

SHA-512

SHA-512/224

SHA-512/256

MD5

HMAC (i.e. HMAC-MD5, HMAC-SHA1, HMAC-SHA256)

获取sha1使用示例:

Dart 复制代码
import 'package:crypto/crypto.dart';
import 'dart:convert'; // for the utf8.encode method

void main() {
  var bytes = utf8.encode("foobar"); // data being hashed

  var digest = sha1.convert(bytes);

  print("Digest as bytes: ${digest.bytes}");
  print("Digest as hex string: $digest");
}

获取md5使用示例:

Dart 复制代码
import 'dart:convert';
import 'package:crypto/crypto.dart';


// md5 加密:将json转为字符串取md5
  String generateMd5(dynamic value) {
    var data = const JsonEncoder().convert(value);
    var content = const Utf8Encoder().convert(data);
    var digest = md5.convert(content);
    // 这里其实就是 digest.toString()
    return digest.toString();
  }

就可以通过判断两个数据的md5是否一致来判断数据是否发生了更新:

相关推荐
诸神黄昏EX2 小时前
Android Build系列专题【篇四:编译相关语法】
android
西西学代码2 小时前
Flutter---EQ均衡器
flutter
雨白4 小时前
优雅地处理协程:取消机制深度剖析
android·kotlin
leon_zeng04 小时前
更改 Android 应用 ID (ApplicationId) 后遭遇记
android·发布
2501_916007476 小时前
iOS 混淆工具链实战,多工具组合完成 IPA 混淆与加固(iOS混淆|IPA加固|无源码混淆|App 防反编译)
android·ios·小程序·https·uni-app·iphone·webview
LinXunFeng6 小时前
Flutter webview 崩溃率上升怎么办?我的分析与解决方案
flutter·ios·webview
Jeled8 小时前
Retrofit 与 OkHttp 全面解析与实战使用(含封装示例)
android·okhttp·android studio·retrofit
西西学代码9 小时前
Flutter---GridView+自定义控件
flutter
ii_best10 小时前
IOS/ 安卓开发工具按键精灵Sys.GetAppList 函数使用指南:轻松获取设备已安装 APP 列表
android·开发语言·ios·编辑器
2501_9159090610 小时前
iOS 26 文件管理实战,多工具组合下的 App 数据访问与系统日志调试方案
android·ios·小程序·https·uni-app·iphone·webview