码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 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使用示例:

    1. import 'package:crypto/crypto.dart';
    2. import 'dart:convert'; // for the utf8.encode method
    3. void main() {
    4. var bytes = utf8.encode("foobar"); // data being hashed
    5. var digest = sha1.convert(bytes);
    6. print("Digest as bytes: ${digest.bytes}");
    7. print("Digest as hex string: $digest");
    8. }

    获取md5使用示例:

    1. import 'dart:convert';
    2. import 'package:crypto/crypto.dart';
    3. // md5 加密:将json转为字符串取md5
    4. String generateMd5(dynamic value) {
    5. var data = const JsonEncoder().convert(value);
    6. var content = const Utf8Encoder().convert(data);
    7. var digest = md5.convert(content);
    8. // 这里其实就是 digest.toString()
    9. return digest.toString();
    10. }

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

  • 相关阅读:
    测试用例的基本要素 && properties配置文件 && 测试用例的基本要素 && SpringMVC背景知识 && 按照开发阶段划分测试类型
    【语音通信】语音通信系统包括语音硬件采样,抽样量化,PCM编码解码模块,FIR滤波,QPSK调制解调模块,语音增强模块以及语音信号还原
    Harbor 安装部署
    Js逆向——捅了【马蜂窝】的ob混淆与加速乐
    golang工程组件——redigo使用(redis协议,基本命令,管道,事务,发布订阅,stream)
    NOMA学习
    避免遮掩继承而来的名称
    MySQL学习笔记:索引2
    R语言使用plot函数可视化数据散点图,使用mtext函数在可视化图像的底部居中添加自定义文本标签(bottom)
    Spring Boot 热部署与日志
  • 原文地址:https://blog.csdn.net/weixin_44786530/article/details/136392071
  • 最新文章
  • 沪漂五周年了:我越来越迷茫了
    Agentic Skill Routing 实战:别再把所有 Skill 塞进 AI Agent 上下文
    MySQL-Seconds_behind_master的精度误差
    [MAF预定义ChatClient中间件-03]CachingChatClient——利用缓存省钱省时间
    AI的至暗历史:从万众期待到被政府撤资,AI的两次死亡徘徊
    Agent OS :五种驯服不确定性的范式
    PortSwigger SQL注入LAB11
    数据库即时编译JIT
    [Begin]AI Learn Data Day 0
    深度学习进阶(二十七)现代 LLM 的核心架构设计其二:SwiGLU
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
小工具 小游戏
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1

京公网安备 11010502049817号