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

相关推荐
lxysbly44 分钟前
安卓PCE模拟器下载指南:用手机玩 PC-Engine / TurboGrafx 经典
android·智能手机
Digitally3 小时前
哪款应用最适合将数据从安卓手机传输到 iPhone?
android·智能手机·iphone
Java小白,一起学习3 小时前
新版onenet云平台数据流对接,包括设备端MQTT和应用端API
android·物联网
小钻风33664 小时前
软件测试: 从入门到实践(json数据格式)
json
2501_946675644 小时前
Flutter与OpenHarmony打卡轮播图组件
java·javascript·flutter
走在路上的菜鸟4 小时前
Android学Flutter学习笔记 第一节 Android视角认知Flutter(View,intent,Async UI)
android·学习·flutter
一起搞IT吧4 小时前
相机Camera日志实例分析之十二:相机Camx【萌拍后置zoom拍照】单帧流程日志详解
android·c++·数码相机·智能手机
冬奇Lab4 小时前
一次 Android 车机黑屏问题的深度剖析:当显示驱动遇上中断风暴
android·性能优化·debug
兮动人4 小时前
Fatal error: Uncaught think\exception\ErrorException: SourceGuardian Loade
android·php
笔夏5 小时前
【安卓学习之myt】adb常用命令
android·学习·adb