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是否一致来判断数据是否发生了更新:

相关推荐
song5012 小时前
鸿蒙 Flutter 支付安全:TEE 可信环境下的支付校验实战
分布式·flutter·百度·重构·交互
遝靑2 小时前
Flutter 从入门到进阶:核心原理与实战开发全解析
flutter
孜燃9 小时前
Flutter APP跳转Flutter APP 携带参数
前端·flutter
2501_937189239 小时前
2025 优化版神马影视 8.8 源码系统|零基础部署
android·源码·开源软件·源代码管理·机顶盒
帅气马战的账号110 小时前
开源鸿蒙Flutter轻量化组件手册:8类高频工具模块,极速适配多终端
flutter
モンキー・D・小菜鸡儿12 小时前
Android Jetpack Compose 基础控件介绍
android·kotlin·android jetpack·compose
无风之翼12 小时前
android15 休眠唤醒过程中有时候屏幕显示时间一闪而过
android·锁屏
时光轻浅,半夏挽歌12 小时前
python不同格式文件的读写方式(json等)
python·json
克喵的水银蛇13 小时前
Flutter 通用标签选择组件:TagSelector 支持单选 / 多选
javascript·windows·flutter
kirk_wang13 小时前
Flutter `video_player`库在鸿蒙端的视频播放优化:一份实用的适配指南
flutter·移动开发·跨平台·arkts·鸿蒙