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

相关推荐
zhangphil6 小时前
HARDWARE 属性的Bitmap与普通Bitmap,GPU与RenderThread渲染与处理方式异同比较,Android
android
消失的旧时光-19438 小时前
Flutter 异步编程:Future 与 Stream 深度解析
android·前端·flutter
alexhilton9 小时前
Compose CameraX现已稳定:给Composer的端到端指南
android·kotlin·android jetpack
星释9 小时前
鸿蒙Flutter三方库适配指南-02.Flutter相关知识基础
flutter·华为·harmonyos
阿里云云原生11 小时前
移动端性能监控探索:可观测 Android 采集探针架构与实现
android
雨白11 小时前
玩转 Flow 操作符(一):数据转换与过滤
android·kotlin
二流小码农11 小时前
鸿蒙开发:web页面如何适配深色模式
android·ios·harmonyos
消失的旧时光-194313 小时前
TCP 流通信中的 EOFException 与 JSON 半包问题解析
android·json·tcp·数据
JiaoJunfeng13 小时前
android 8以上桌面图标适配方案(圆形)
android·图标适配
参宿四南河三13 小时前
Android Compose快速入门手册(真的只是入门)
android·app