转自:https://blog.csdn.net/hugewaves/article/details/53765063

SM3算法也是一种哈希算法,中国国家密码管理局在2010年发布,其名称是SM3密码杂凑算法,密码管理局有该算法的详细说明,可以到其网站下载。本文只是简单的介绍这个算法,便于理解。 
1、算法的本质 
给数据加一个固定长度的指纹,这个固定长度就是256比特。 
2、处理过程 
第一步:填充,使填充后的数据的长度是512的整数倍 
先在数据的最尾巴上加一个1;然后把原始数据的长度用64比特表示,放在最后面;再看看现在的数据的长度值离512的整数还差多少个,差多少个就填多少个0在加的这个1和64比特的长度之间。 
第二步:分组 
把填充后的信息按照512比特一个分组进行分组,如果分成了N组,就是b(0),b(1),,,b(N-1) 
第三步:迭代压缩得到最后的杂凑值(哈希值) 
IV(n)=CF(IV(n-1),b(n-1)) 
如果信息分为N组,那么IV(N)就是最后得到的杂凑值。

宏观上算法就是这样一个过程,在这个基础上再去看具体的算法就比较容易了。

最新文章

  1. php 使用htmlspecialchars() 和strip_tags函数过滤HTML标签的区别
  2. WPF的ComboBox 数据模板自定义
  3. 记录一些容易忘记的属性 -- UITabBarController
  4. os
  5. Tomcat中配置JNDI数据源
  6. JMX学习笔记(二)-Notification
  7. ubuntu logout 命令
  8. 忘记mysql 5.7的密码
  9. Android开发问题汇总(持续更新)
  10. 应用层协议系列(两)——HTTPserver之http协议分析
  11. python/numpy/tensorflow中,对矩阵行列操作,下标是怎么回事儿?
  12. java实现sftp客户端上传文件以及文件夹的功能
  13. SpringBoot笔记十五:任务
  14. docker 系列 - 修改容器的 DNS 服务器
  15. 理解PHP中的会话控制
  16. webpack2 项目构建一
  17. [uart]设置linux 串口的block方式
  18. 1005 Spell It Right (20)(20 point(s))
  19. Unity标准材质官方教程合集
  20. HBase in Action前三章笔记

热门文章

  1. 翻译——2_Linear Regression and Support Vector Regression
  2. 13)编写一个子类SnakeCtrl来继承基类
  3. ant design vue 时间选择器只能到最大日期
  4. Mac 终端实现快速定位命令 自动补全目录
  5. 【python】两行代码实现近百年的正反日期查询--20200202
  6. 吴裕雄--天生自然 PYTHON3开发学习:日期和时间
  7. codeforce 1188A1 Add on a Tree 树
  8. 900B. Position in Fraction#分数位置(模拟)
  9. Rikka with Prefix Sum
  10. i2c驱动dht12的原理和步骤