首页 > 其他分享 >哈希加密伪代码

哈希加密伪代码

时间:2023-04-19 18:45:20浏览次数:33  
标签:15 16 代码 ROTR let 哈希 加密

// 定义 SHA256 压缩函数
function sha256_compress(data_block) {
    for (let i=16; i<64; i++) {
        w[i]=(ROTR(17,w[i-2])^ROTR(19,w[i-2])^(w[i-2]>>>10))+w[i-7]+(ROTR(7,w[i-15])^ROTR(18,w[i-15])^(w[i-15]>>>3))+w[i-16];
    }
    let [a,b,c,d,e,f,g,h]=STATE;
    for (let i=0; i<64; i++) {
        const S1=ROTR(6, e)^ROTR(11, e)^ROTR(25, e);
        const ch=(e&f)^((~e)&g);
        const temp1=h+S1+ch+K[i]+w[i];
        const S0=ROTR(2, a)^ROTR(13, a)^ROTR(22, a);
        const maj=(a&b)^(a&c)^(b&c);
        const temp2=S0+maj;
        h=g; g=f; f=e; e=d+temp1; d=c; c=b; b=a; a=temp1+temp2;
    }
    STATE[0]+=a; STATE[1]+=b; STATE[2]+=c; STATE[3]+=d;
    STATE[4]+=e; STATE[5]+=f; STATE[6]+=g; STATE[7]+=h;
}

// 定义 SHA256 哈希函数
function sha256(input_data) {
    let padded_data=pad(input_data), data_blocks=split_to_blocks(padded_data, 512);
    let STATE=[0x6a09e667,0xbb67ae85,0x3c6ef372,0xa54ff53a,0x510e527f,0x9b05688c,0x1f83d9ab,0x5be0cd19];
    for (let i=0; i<data_blocks.length; i++) sha256_compress(data_blocks[i]);
    return STATE.map(e=>('00000000'+(e>>>0).toString(16)).slice(-8)).join('');
}

标签:15,16,代码,ROTR,let,哈希,加密
From: https://www.cnblogs.com/zss12138/p/17334295.html

相关文章

  • C/C++哈希表应用[2023-04-19]
    C/C++哈希表应用[2023-04-19]选题二十:哈希表应用[问题描述]利用哈希表进行存储任务要求:针对一组数据进行初始化哈希表,可以进行显示哈希表,查找元素,插入元素,删除元素退出程序操作。设计思想:哈希函数用除留余数法构造,用线性探测再散列处理冲突。设计目的:实现哈希表的综合操......
  • 用一行代码-重装系统cmdpe.com
    告诉你们一条命令就可以重装最新微软官方系统、包括最新Windows11哦!任何电脑都可以用。这绝壁是史上最简单的重装系统、超实用。主要特点:只需一行命令,不需要其他任何东西。自动从微软官方服务器下载系统文件,绝对纯净。下载速度快,支持断点续传,支持多线程,基本上几分钟就能......
  • RNN网络的数学理论公式以及torch案例代码
    RNN网络的数学理论公式以及torch案例代码公式记号数学理论公式torch实现代码RNN(循环神经网络)是一种深度学习模型,可用于序列数据建模,例如语言模型或时间序列预测。以下是RNN的数学理论公式和torch实现示例。公式记号需要注意的是,在训练循环中,我们不需要显式地传......
  • 那些年优化-同事的 shit 代码
         随着业务的深入,已经不满足于日常按部就班的处理每个迭代的需求,可以腾出一些时间来处理那些狗皮膏药的代码,这类代码的通病:1.无任何注释,其实还好,很多时候是直接从别的业务搬过来且连其他业务的注释都一字不改,更有甚者,连log日志都不改,导致排查线上问题时,阿里云上充......
  • 给你们讲个笑话——低代码会取代程序员
    今天是正经男,我们严肃讨论一下一直以来争吵不休的取代问题。低代码开发平台,低代码技术会取代开发人员么?一、背景低代码开发平台的普及,让很多公司对快速生成应用抱有很大期望。甚至有人认为,低代码开发平台未来会“干掉”开发者。这是真的吗?好久没时间分享了。今天来谈谈关于低......
  • 直播平台源代码,input密码框显示与隐藏
    直播平台源代码,input密码框显示与隐藏一、html部分   <divstyle="margin-top:200px;background:#42b983;width:200px;height:100px">   <input:type="passwordType"v-model="password"placeholder="请输入账号"/>   <img......
  • 火爆的低代码开发具有哪些技术特点?
    2014年著名研究机构Forrester提出低代码概念,距今已有9年的发展史,国内市场在2021年已逐渐形成低代码生态体系。低代码不是一个新潮的热词,也不是遥不可及的创新假想,而是一种软件架构风格。技术的发展如同历史的年轮,周而复始,源源不绝。我们的思潮,从无代码时代被时代的年轮推到了分层架......
  • 构造代码块
    什么是构造代码块只听过静态代码块,是在程序运行的过程中,加载到类的数据里构造代码块运行在构造方法前面执行,如果没有构造方法,但是被Componet修饰的话,就再bean生成之前先执行看样例@Component@Slf4jpublicclassPrepareNodeimplementsNode<UmpAlarmModel>{ privateMa......
  • Java-Day-12( 类变量 + 类方法 + main 方法 + 代码块 + 单例设计模式 + final 关键字 )
    Java-Day-12类变量定义一个变量count,是一个类变量(静态变量)staticclassPerson{privateStringname;// 该静态变量static最大的特点就是会被Person所有的对象实例共享publicstaticintcount=0;publicPerson(Stringname){this.na......
  • 【VRP问题】基于混合遗传算法求解车辆路径规划问题附matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......