当前位置: 首页 > news >正文

网站运营与网站策划甘肃网站建设哪家好

网站运营与网站策划,甘肃网站建设哪家好,免费手机网站系统,php网站源码免费下载SHA 算法的原理及实现 章节目录 简介算法描述 2.1 数据准备 2.1.1 数据填充 2.1.2 数据分块 2.1.3 设置初始 Hash 值 2.2 Hash 计算 2.2.1 SHA-1 2.2.2 SHA-256 2.2.3 SHA-512实现b作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, …    SHA 算法的原理及实现 章节目录 简介算法描述 2.1 数据准备 2.1.1 数据填充 2.1.2 数据分块 2.1.3 设置初始 Hash 值 2.2 Hash 计算 2.2.1 SHA-1 2.2.2 SHA-256 2.2.3 SHA-512实现b作者能力有限, 如果您在阅读过程中发现任何错误, 还请您务必联系本人,指出错误, 避免后来读者再学习错误的知识.谢谢!/b 简介 SHA 算法英语Secure Hash Algorithm缩写为SHA是一个密码散列函数家族是FIPS所认证的安全散列算法。能计算出一个数字消息所对应到的长度固定的字符串又称消息摘要的算法。且若输入的消息不同它们对应到不同字符串的机率很高。 本文我们将介绍以下 SHA 算法: SHA-1, SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224, SHA-512/256. 其中 SHA-224 和 SHA-256 使用相同的算法, 区别在于初始 Hash 值不同, 最终结果只使用算法输出的数据中的前224/256 bit. SHA-384, SHA-512, SHA-512/224, SHA-512/256 使用相同的算法, 区别在于初始 Hash 值不同, 最终结果只使用算法输出的数据中的前384/512/224/256 bit. 而 SHA-2* 和 SHA-384,SHA-5* 算法也非常类似, 区别在于采用的字(Word) 长度不同, SHA-2*使用 32-bit 的字, 而 其他算法使用 64-bit 的字. 算法的迭代次数也不一样. 算法描述 本文中将介绍的 SHA 算法的计算步骤从大体上可以分为两步: b数据准备/b 和 bHash 计算/b. 数据准备 在数据准备阶段, 我们也像 MD5 那样, 需要先将数据填充到特定长度,同时将原始数据长度填充进去,然后对数据进行分块, 因为我们的算法是基于块进行的. SHA 家族中的具体算法的实现大体相同, 只是填充长度的bit数,分块大小略有不同而已. 在数据准备阶段我们需要进行三个操作: 数据填充, 数据分块, 设置初始 Hash 值. 数据填充 我们使用 表示数据数据, 它的长度使用 表示. 对于算法 bSHA-1/b, bSHA-224/b, bSHA-256/b, 数据填充方法如下: 先填充 1 bit 的 1 到数据末尾, 然后紧接着填充 k 个 0, 这里 k 需要时最小的非负数且满足 , 也即是说需要将原始数据长度填充到b差64位就是512的整数倍/b. 上述操作结束后, 将 表示为 64 bit 的bit数组填充到上述步骤所得的数据之后, 此时我们得到一个长度为512整数倍的数据. 举个例子: 假设我们的数据数据为abc, 它的长度为24(bit). 我们通过计算得到 k 应该是 423(448 - 1 - 24). 此时填充之后的数据应该如下: 填充完成之后的长度是512(bit). 对于算法 bSHA-384/b, bSHA-512/b, bSHA-512/224/b, bSHA-512/256/b, 数据填充方法如下: 先填充 1 bit 的 1 到数据末尾, 然后紧接着填充 k 个 0, 这里 k 需要时最小的非负数且满足 , 也即是说需要将原始数据长度填充到b差128位就是1024的整数倍/b. 上述操作结束后, 将 表示为 128 bit 的bit数组填充到上述步骤所得的数据之后, 此时我们得到一个长度为1024整数倍的数据. 以上述的例子为例: 假设我们的数据数据为abc, 它的长度为24(bit). 我们通过计算得到 k 应该是 871(896 - 1 - 24). 此时填充之后的数据应该如下: 填充完成之后的长度是1024(bit). 数据分块 填充后的数据需要被分块. 对于算法 bSHA-1/b, bSHA-224/b, bSHA-256/b, 我们将数据分为 个 521-bit 的块, 分别表示为 512-bit 的块又可以被划分为 16 个字(32-bit Word), 分别表示为 对于算法 bSHA-384/b, bSHA-512/b, bSHA-512/224/b, bSHA-512/256/b 我们将数据分为 个 1024-bit 的块, 分别表示为 1024-bit 的块又可以被划分为 16 个字(64-bit Word), 分别表示为 设置初始 Hash 值 每个特定的 SHA 算法, 都有相应的初始 Hash 值. 在计算 Hash 之前, 我们需要先将初始值准备好. 为了减少文章篇幅, 这里我们不列出这些初始值和 Hash 计算过程中使用到的常量,后边算法实现中会给出相应数据. Hash 计算 SHA-1 SHA-1 算法要求输入数据的长度不能大于 , 最小长度为0. 伪代码如下: For i1 to N: {     //1. 计算 //2. 初始化工作变量 a, b, c, d, e. 他们用来存储在第 i-1 次迭代式的 Hash 值     // 他们的初始值就是我们在设置初始 Hash 值小节中所说的值. // 3     For t0 to 79:     {     } //4. 计算第 中间 hash 值 } 在经过 N 次迭代之后, 最终结果为 的字节表示依次连接所组成的字节数组. SHA-256 SHA-256 算法要求输入数据的长度不能大于 , 最小长度为0. SHA-224 算法的计算过程与 SHA-256 相同, 却别在于使用的初始化 Hash 值不同, 且 SHA-224 算法的最终结果是取 SHA-256 算法结果的前 224 bit. 伪代码如下: For i1 to N: {     //1. 计算 //2. 初始化工作变量 a, b, c, d, e, f, g, h. 他们用来存储在第 i-1 次迭代式的 Hash 值     // 他们的初始值就是我们在设置初始 Hash 值小节中所说的值. // 3     For t0 to 63:     {     } //4. 计算第 中间 hash 值 } 在经过 N 次迭代之后, 最终结果为 的字节表示依次连接所组成的字节数组. SHA-512 SHA-512 算法要求输入数据的长度不能大于 , 最小长度为0. SHA-384 算法的计算过程与 SHA-512 相同, 却别在于使用的初始化 Hash 值不同, 且 SHA-384 算法的最终结果是取 SHA-512 算法结果的前 384 bit. SHA-512/224 算法的计算过程与 SHA-512 相同, 却别在于使用的初始化 Hash 值不同, 且 SHA-512/224 算法的最终结果是取 SHA-512 算法结果的前 224 bit. SHA-512/256 算法的计算过程与 SHA-512 相同, 却别在于使用的初始化 Hash 值不同, 且 SHA-512/256 算法的最终结果是取 SHA-512 算法结果的前 256 bit. 伪代码如下: For i1 to N: {     //1. 计算 //2. 初始化工作变量 a, b, c, d, e, f, g, h. 他们用来存储在第 i-1 次迭代式的 Hash 值     // 他们的初始值就是我们在设置初始 Hash 值小节中所说的值. // 3     For t0 to 79:     {     } //4. 计算第 中间 hash 值 } 在经过 N 次迭代之后, 最终结果为 的字节表示依次连接所组成的字节数组. 算法实现 本人使用 go 语言实现了该算法. github:https://github.com/UselezzProgrammer/mycrypto END!
http://www.pierceye.com/news/160388/

相关文章:

  • 做网站专业服务新网域名官网
  • 网站dns多久刷新广州网站建设开发
  • 标准网站有哪些西安市沣东新城建设局网站
  • 对php网站开发技术课程总结广州网站策划公司
  • 站长工具爱站微信服务商平台官网
  • 中山市网站建设公司网页设计与制作教程第4版
  • 旅游类网站开发设计报告工信部清理未备案网站
  • 永久免费自助建站源代码行业类网站模板
  • 通辽建设网站知名品牌形象设计公司
  • 做一家网站费用网站建设有关的职位
  • 网站后台无编辑器扒人家网站做网站
  • 有什么网站做打印店网站开发计划甘特图
  • 网页模板好的网站好滑县网站建设服务
  • 做网站需要学会些什么建设网银登录官方网站
  • phpcms双语网站怎么做深圳做地铁的公司网站
  • 郑州的电子商城网站建设济南网站建设大标网络
  • 网站建设前端和后端的区别网站建设未来发展
  • 深圳网站制作公司建设网站seo视频狼雨seo教程
  • 建网站做优化重庆世界500强企业
  • 手机网站建设合同拼多多网店
  • 手机网站二级域名网站开发多少钱一个
  • 车险网站模版在线表白网页制作
  • 网站建设寻找可以途径wordpress 调试php代码
  • 济南优化seo网站建设微信公众号?
  • 武夷山网站推广三星网上商城下载
  • wap网站开发文案素材网站
  • 做网站需要用什么系统昆山张浦做网站
  • 钟祥建设局网站网页样式与布局
  • j建设银行信用卡网站天河外贸网站建设
  • 石家庄网站建设招商wordpress漫画主题