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

相关推荐
子非鱼942740 分钟前
10-Flutter调用鸿蒙原生能力前置课:MethodChannel和PlatformView准备
学习·flutter·华为·harmonyos
鱼儿也有烦恼44 分钟前
01.搭建Android Studio开发环境
android·android studio
xd1855785551 小时前
鸿蒙PC时代的AI快递查询应用:基于鸿蒙Flutter框架的跨端创新实践
人工智能·flutter·华为·harmonyos·鸿蒙
m0_738120722 小时前
PHP代码审计基础——面向对象(四)
android·开发语言·网络·安全·github·php
ZZZMMM.zip3 小时前
基于鸿蒙PC与鸿蒙Flutter框架的AI紧急求助应用开发实践
人工智能·flutter·华为·harmonyos·鸿蒙
Coffeeee3 小时前
搞Android的怎么可能搞不懂Context Engineering?
android·人工智能·ai编程
Carson带你学Android3 小时前
Gemini Nano 开发实战:让你的App轻松拥有端侧 AI 功能
android·ai编程
ZZZMMM.zip4 小时前
鸿蒙生态新征程:基于鸿蒙Flutter框架的AI菜谱营养应用深度解析
人工智能·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
TDengine (老段)4 小时前
TDengine SMA 索引 — 块级/文件级统计索引
android·大数据·服务器·数据库·人工智能·时序数据库·tdengine
心中有国也有家5 小时前
AtomGit Flutter 鸿蒙客户端: AnimatedScale 与 AnimatedContainer 联合实战
android·javascript·flutter·华为·harmonyos