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

莆田网站建设优化游戏网站排行

莆田网站建设优化,游戏网站排行,点样做网站,wordpress退出实验八 SHA-2 1.实验目的 熟悉SHA – 2算法的运行过程#xff0c;能够使用C语言编写实现SHA-2算法程序#xff0c;增加对摘要函数的理解。 2、实验任务 #xff08;1#xff09;理解SHA-2轮函数的定义和常量的定义。 #xff08;2#xff09;利用VC语言实现SHA-2算…实验八  SHA-2 1.实验目的 熟悉SHA – 2算法的运行过程能够使用C语言编写实现SHA-2算法程序增加对摘要函数的理解。 2、实验任务 1理解SHA-2轮函数的定义和常量的定义。 2利用VC语言实现SHA-2算法。 3分析SHA-2算法运行的性能。 3、实验原理 SHA-256算法输入报文的最大长度不超过2“比特输入按512比特分组进行处理产生的输出是一个256比特的报文摘要。该算法处理包括以下几步: (1附加填充比特。对报文进行填充使报文长度与448模512同余(长度448 mod512)填充的比特数范围是1512填充比特串的最高位为l其余位为0。 (2附加长度值。将用64比特表示的初始报文(填充前)的位长度附加在步骤1的结果后(低位字节优先)。 (3初始化缓存。使用一个256比特的缓存来存放该散列函数的中间及最终结果。该缓存表示为A0x6A09E667B0xBB67AE85CОx3C6EF372D0xA54FF53AE0x510E527FF0x9B05688CG0xlF83D9ABH0x5BEOCD19。 (4处理512比特(16个字)报文分组序列。该算法使用了六种基本逻辑函数由64步迭代运算组成。每步都以256比特缓存值ABCDEFGH为输入然后更新缓存内容。每步使用一个32比特常数值Kt和一个32比特Wt。 4、实验过程 SHA-2是一组密码学哈希函数包括SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224和SHA-512/256。SHA-2轮函数定义了SHA-2算法中的核心操作。SHA-2算法使用了不同的轮函数具体取决于哈希函数的变种。SHA-256的轮函数包括以下步骤 a. 消息预处理原始消息被填充为512位的多个块。然后消息长度被附加到消息的末尾通常以64位的二进制表示。 b. 初始化Hash值SHA-256使用8个32位的初始化Hash值A, B, C, D, E, F, G, H这些值是根据黄金分割数来确定的通常使用前256位的平方根的小数部分的前32位。 c. 消息分块原始消息被分成512位的块依次处理。 d. 消息调度512位块被分成16个32位的字然后根据一定规则生成额外的字W[16]到W[63]用于轮函数的迭代。 e. 轮函数迭代SHA-256算法包括64轮迭代每轮使用不同的常量K和轮函数对Hash值进行更新。 f. 生成哈希值最后合并所有Hash值A, B, C, D, E, F, G, H并输出。 SHA-2常量K是每轮中使用的常量值每个常量K的值是SHA-256算法中的一个根号数的小数部分的前32位。这些常量K的值在SHA-256算法中是固定的。 #include iostream #include iomanip #include string #include cstring #include sstream #include vector #include cstdint// SHA-256 Constants const uint32_t K[] {0x428a2f98, 0x71374491, 0xb5c0fbcf, 0xe9b5dba5, 0x3956c25b, 0x59f111f1, 0x923f82a4, 0xab1c5ed5,0xd807aa98, 0x12835b01, 0x243185be, 0x550c7dc3, 0x72be5d74, 0x80deb1fe, 0x9bdc06a7, 0xc19bf174,0xe49b69c1, 0xefbe4786, 0x0fc19dc6, 0x240ca1cc, 0x2de92c6f, 0x4a7484aa, 0x5cb0a9dc, 0x76f988da,0x983e5152, 0xa831c66d, 0xb00327c8, 0xbf597fc7, 0xc6e00bf3, 0xd5a79147, 0x06ca6351, 0x14292967,0x27b70a85, 0x2e1b2138, 0x4d2c6dfc, 0x53380d13, 0x650a7354, 0x766a0abb, 0x81c2c92e, 0x92722c85,0xa2bfe8a1, 0xa81a664b, 0xc24b8b70, 0xc76c51a3, 0xd192e819, 0xd6990624, 0xf40e3585, 0x106aa070,0x19a4c116, 0x1e376c08, 0x2748774c, 0x34b0bcb5, 0x391c0cb3, 0x4ed8aa4a, 0x5b9cca4f, 0x682e6ff3,0x748f82ee, 0x78a5636f, 0x84c87814, 0x8cc70208, 0x90befffa, 0xa4506ceb, 0xbef9a3f7, 0xc67178f2 };#define ROTR(x, n) ((x n) | (x (32 - n))) #define SHR(x, n) (x n)uint32_t Ch(uint32_t x, uint32_t y, uint32_t z) {return (x y) ^ (~x z); }uint32_t Maj(uint32_t x, uint32_t y, uint32_t z) {return (x y) ^ (x z) ^ (y z); }uint32_t Sigma0(uint32_t x) {return ROTR(x, 2) ^ ROTR(x, 13) ^ ROTR(x, 22); }uint32_t Sigma1(uint32_t x) {return ROTR(x, 6) ^ ROTR(x, 11) ^ ROTR(x, 25); }uint32_t sigma0(uint32_t x) {return ROTR(x, 7) ^ ROTR(x, 18) ^ SHR(x, 3); }uint32_t sigma1(uint32_t x) {return ROTR(x, 17) ^ ROTR(x, 19) ^ SHR(x, 10); }// SHA-256 void sha2(const std::string message) {std::vectoruint8_t data(message.begin(), message.end());uint64_t messageLength data.size() * 8;data.push_back(0x80); while ((data.size() 8) % 64 ! 0) {data.push_back(0x00);}for (int i 0; i 8; i) {data.push_back((messageLength (56 - i * 8)) 0xFF);}uint32_t h[8] {0x6a09e667, 0xbb67ae85, 0x3c6ef372, 0xa54ff53a,0x510e527f, 0x9b05688c, 0x1f83d9ab, 0x5be0cd19};for (size_t i 0; i data.size(); i 64) {uint32_t w[64];for (int t 0; t 16; t) {w[t] (data[i t * 4] 24) | (data[i t * 4 1] 16) | (data[i t * 4 2] 8) | data[i t * 4 3];}for (int t 16; t 64; t) {w[t] sigma1(w[t - 2]) w[t - 7] sigma0(w[t - 15]) w[t - 16];}uint32_t a h[0];uint32_t b h[1];uint32_t c h[2];uint32_t d h[3];uint32_t e h[4];uint32_t f h[5];uint32_t g h[6];uint32_t j h[7];for (int t 0; t 64; t) {uint32_t t1 j Sigma1(e) Ch(e, f, g) K[t] w[t];uint32_t t2 Sigma0(a) Maj(a, b, c);j g;g f;f e;e d t1;d c;c b;b a;a t1 t2;}h[0] a;h[1] b;h[2] c;h[3] d;h[4] e;h[5] f;h[6] g;h[7] j;}for (int i 0; i 8; i) {std::cout std::hex std::setfill(0) std::setw(8) h[i];}std::cout std::dec std::endl; }int main() {std::string message Hello, SHA-2!;sha2(message);return 0; }5、实验心得 SHA-2算法是一种广泛使用的密码学哈希函数用于计算数据的消息摘要。SHA-2包括一系列不同长度的哈希函数如SHA-224、SHA-256、SHA-384和SHA-512分别输出224位、256位、384位和512位的消息摘要。本次实验采用SHA-256实现算法SHA-2算法是一种强大的哈希算法通常用于数据完整性验证、数字签名等应用。
http://www.hkea.cn/news/14398068/

相关文章:

  • 站长之家alexa排名怎么看榆林市住房和城市建设局网站
  • 中能建设集团电子商务网站html家具网站源代码
  • 个人网站设计案例重庆网站建设狐灵科技
  • 有自己的网站做淘宝联盟号做吗wordpress标签列表
  • seo对网站的作用百度快速收录3元一条
  • 镇江做网站的公司上海娱乐场所关门
  • 珠海斗门建设局网站哪里做网站做的好
  • 建行移动门户网站首页中企动力做的网站山西太原
  • 中国企业网站建设现状跨境电商关键词工具
  • 模板建网站怎么做seo华为云云速建站
  • html做的好看的网站中企动力建设网站怎么样
  • 网站开发现状及研究意义制作一个静态网站源码
  • 网站建设相关图片福建银瑞建设工程有限公司网站
  • 网站宝搭建网站环境沈阳网站建设与维护
  • 安全中国asp.net网站开发项目实战培训班临沂做商城网站的公司
  • 建网站多少钱合适百元建站
  • 品牌网站建设源码国内免费的外贸平台
  • 教育公司网站建设方案网页翻译不了中文
  • 如何判断网站做没做404手机网站和电脑网站的区别
  • 深圳做网站专业微信如何注册小程序
  • 网站开发报价单 doc宁波网络营销怎么做
  • 怎么做视频解析的网站营销型网站建设深圳
  • 个人做论坛网站json取数据做网站
  • 中华建设大连做网站优化
  • 做社区网站威宁建设局网站
  • 网站模板代理电话做网站海报
  • 优秀网站模板欣赏wordpress栏目页只显示标题
  • 汕头做网站优化的公司平面设计有几个软件
  • 创建网站开发公司搜索引擎排名2020
  • 佛山网站seo优化气动喷枪网站建设