js md5算法源码及关键数

JavaScript实现MD5 (附完整源码) 阅读详情
!function (n) {
    "use strict";

    function d(n, t) {
        var r = (65535 & n) + (65535 & t);
        return (n >> 16) + (t >> 16) + (r >> 16) << 16 | 65535 & r
    }

    function f(n, t, r, e, o, u) {
        return d(function (n, t) {
            return n << t | n >>> 32 - t
        }(d(d(t, n), d(e, u)), o), r)
    }

    function l(n, t, r, e, o, u, c) {
        return f(t & r | ~t & e, n, t, o, u, c)
    }

    function g(n, t, r, e, o, u, c) {
        return f(t & e | r & ~e, n, t, o, u, c)
    }

    function v(n, t, r, e, o, u, c) {
        return f(t ^ r ^ e, n, t, o, u, c)
    }

    function m(n, t, r, e, o, u, c) {
        return f(r ^ (t | ~e), n, t, o, u, c)
    }

    function i(n, t) {
        var r, e, o, u, c;
        n[t >> 5] |= 128 << t % 32, n[14 + (t + 64 >>> 9 << 4)] = t;
        var f = 0x67452301,
            i = -0x10325477,
            a = -0x67452302,
            h = 0x10325476;
        for (r = 0; r < n.length; r += 16) i = m(i = m(i = m(i = m(i = v(i = v(i = v(i = v(i = g(i = g(i = g(i = g(i = l(i = l(i = l(i = l(o = i, a = l(u = a, h = l(c = h, f = l(e = f, i, a, h, n[r], 7, -680876936), i, a, n[r + 1], 12, -389564586), f, i, n[r + 2], 17, 606105819), h, f, n[r + 3], 22, -1044525330), a = l(a, h = l(h, f = l(f, i, a, h, n[r + 4], 7, -176418897), i, a, n[r + 5], 12, 1200080426), f, i, n[r + 6], 17, -1473231341), h, f, n[r + 7], 22, -45705983), a = l(a, h = l(h, f = l(f, i, a, h, n[r + 8], 7, 1770035416), i, a, n[r + 9], 12, -1958414417), f, i, n[r + 10], 17, -42063), h, f, n[r + 11], 22, -1990404162), a = l(a, h = l(h, f = l(f, i, a, h, n[r + 12], 7, 1804603682), i, a, n[r + 13], 12, -40341101), f, i, n[r + 14], 17, -1502002290), h, f, n[r + 15], 22, 1236535329), a = g(a, h = g(h, f = g(f, i, a, h, n[r + 1], 5, -165796510), i, a, n[r + 6], 9, -1069501632), f, i, n[r + 11], 14, 643717713), h, f, n[r], 20, -373897302), a = g(a, h = g(h, f = g(f, i, a, h, n[r + 5], 5, -701558691), i, a, n[r + 10], 9, 38016083), f, i, n[r + 15], 14, -660478335), h, f, n[r + 4], 20, -405537848), a = g(a, h = g(h, f = g(f, i, a, h, n[r + 9], 5, 568446438), i, a, n[r + 14], 9, -1019803690), f, i, n[r + 3], 14, -187363961), h, f, n[r + 8], 20, 1163531501), a = g(a, h = g(h, f = g(f, i, a, h, n[r + 13], 5, -1444681467), i, a, n[r + 2], 9, -51403784), f, i, n[r + 7], 14, 1735328473), h, f, n[r + 12], 20, -1926607734), a = v(a, h = v(h, f = v(f, i, a, h, n[r + 5], 4, -378558), i, a, n[r + 8], 11, -2022574463), f, i, n[r + 11], 16, 1839030562), h, f, n[r + 14], 23, -35309556), a = v(a, h = v(h, f = v(f, i, a, h, n[r + 1], 4, -1530992060), i, a, n[r + 4], 11, 1272893353), f, i, n[r + 7], 16, -155497632), h, f, n[r + 10], 23, -1094730640), a = v(a, h = v(h, f = v(f, i, a, h, n[r + 13], 4, 681279174), i, a, n[r], 11, -358537222), f, i, n[r + 3], 16, -722521979), h, f, n[r + 6], 23, 76029189), a = v(a, h = v(h, f = v(f, i, a, h, n[r + 9], 4, -640364487), i, a, n[r + 12], 11, -421815835), f, i, n[r + 15], 16, 530742520), h, f, n[r + 2], 23, -995338651), a = m(a, h = m(h, f = m(f, i, a, h, n[r], 6, -198630844), i, a, n[r + 7], 10, 1126891415), f, i, n[r + 14], 15, -1416354905), h, f, n[r + 5], 21, -57434055), a = m(a, h = m(h, f = m(f, i, a, h, n[r + 12], 6, 1700485571), i, a, n[r + 3], 10, -1894986606), f, i, n[r + 10], 15, -1051523), h, f, n[r + 1], 21, -2054922799), a = m(a, h = m(h, f = m(f, i, a, h, n[r + 8], 6, 1873313359), i, a, n[r + 15], 10, -30611744), f, i, n[r + 6], 15, -1560198380), h, f, n[r + 13], 21, 1309151649), a = m(a, h = m(h, f = m(f, i, a, h, n[r + 4], 6, -145523070), i, a, n[r + 11], 10, -1120210379), f, i, n[r + 2], 15, 718787259), h, f, n[r + 9], 21, -343485551), f = d(f, e), i = d(i, o), a = d(a, u), h = d(h, c);
        return [f, i, a, h]
    }

    function a(n) {
        var t, r = "",
            e = 32 * n.length;
        for (t = 0; t < e; t += 8) r += String.fromCharCode(n[t >> 5] >>> t % 32 & 255);
        return r
    }

    function h(n) {
        var t, r = [];
        for (r[(n.length >> 2) - 1] = void 0, t = 0; t < r.length; t += 1) r[t] = 0;
        var e = 8 * n.length;
        for (t = 0; t < e; t += 8) r[t >> 5] |= (255 & n.charCodeAt(t / 8)) << t % 32;
        return r
    }

    function e(n) {
        var t, r, e = "0123456789abcdef",
            o = "";
        for (r = 0; r < n.length; r += 1) t = n.charCodeAt(r), o += e.charAt(t >>> 4 & 15) + e.charAt(15 & t);
        return o
    }

    function r(n) {
        return unescape(encodeURIComponent(n))
    }

    function o(n) {
        return function (n) {
            return a(i(h(n), 8 * n.length))
        }(r(n))
    }

    function u(n, t) {
        return function (n, t) {
            var r, e, o = h(n),
                u = [],
                c = [];
            for (u[15] = c[15] = void 0, 16 < o.length && (o = i(o, 8 * n.length)), r = 0; r < 16; r += 1) u[r] = 909522486 ^ o[r], c[r] = 1549556828 ^ o[r];
            return e = i(u.concat(h(t)), 512 + 8 * t.length), a(i(c.concat(e), 640))
        }(r(n), r(t))
    }

    function t(n, t, r) {
        return t ? r ? u(t, n) : function (n, t) {
            return e(u(n, t))
        }(t, n) : r ? o(n) : function (n) {
            return e(o(n))
        }(n)
    }

    "function" == typeof define && define.amd ? define(function () {
        return t
    }) : "object" == typeof module && module.exports ? module.exports = t : n.md5 = t
}(this);


console.log(module.exports('123456'))

关键数字

10进制16进制8进制2进制
17325841930x67452301

parseInt('14721221401', 8)

parseInt('1100111010001010010001100000001', 2)

-271733879-0x10325477

-parseInt("14721221402", 8)

-parseInt("10000001100100101010001110111", 2)

-1732584194-0x67452302

-parseInt("14721221402", 8)

-parseInt("1100111010001010010001100000010", 2)

2717338780x10325476

parseInt("2014452166", 8)

parseInt("10000001100100101010001110110", 2)

javascript:实现md5算法(附完整源码) 阅读详情

相关推荐

JavaScript中MD5加密方法与实践

本文还有配套的精品资源,点击获取 简介:MD5是一种常用的哈希算法,用于将信息映射为固定长度的摘要值。在JavaScript中,MD5加密常用于数据验证、密码存储和防止数据篡改。由于其单向性,MD5可以有效检验数据完整性。尽管存在安全风险,MD5仍在一些场景中使用。JavaScript实现MD5通常依赖第三方库如 crypto-js 和 spark-m...

weixin_34511754的博客 6466

在JS中使用MD5加密

由于原生的javascript中没有md5加密的函数,所以我们这里要借用一个js的md5加密插件blueimp_md5

webchang的博客 3万+

JavaScript中MD5加密的实现与应用

本文还有配套的精品资源,点击获取 简介:MD5是一种广泛使用的哈希算法,可将任意长度的字符串转换为固定长度的散列值,常用于数据安全如存储密码和验证数据完整性。尽管存在安全隐患,MD5仍可通过库如 crypto-js 在JavaScript中实现。对于安全性要求较高的应用,推荐使用更安全的哈希算法。本文提供了MD5加密的JavaScript实现示例,并建议了解与...

weixin_36464343的博客 5513

js MD5的6种实现方式

js MD5的6种实现方式js代码使用 js代码 /* * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message * Digest Algorithm, as defined in RFC 1321. * Version 2.1 Copyright (C) Paul Johnston 1999 - 2002. * Other contributors: Greg Holt, Andrew Kepert, Ydna

移动开发学习笔记 3万+

JavaScript实现MD5加密算法指南

MD5,即消息摘要算法第五版(Message-Digest Algorithm 5),由罗纳德·李维斯特(Ronald Rivest)于1991年设计,是广泛用于确保信息传输完整性的哈希函数。MD5可以产生一个128位(即16字节)的哈希值,通常用32个十六进制数字表示。因其速度快、易于实现且抗碰撞性较好,曾被广泛应用于各种软件领域进行数据完整性校验。鉴于MD5算法的缺陷,开发者和安全专家推荐使用其他更安全的加密哈希函数。当前,SHA-256和SHA-3是广泛接受的替代方案。

weixin_42527589的博客 2030

JavaScript实现MD5加密算法的完整指南

MD5(Message-Digest Algorithm 5)是RSA数据安全公司开发的一种单向散列算法,广泛应用于数据完整性校验和密码存储。它将任意长度的数据转换为固定长度(128位)的哈希值,通常以32位十六进制数表示。MD5算法以其高效性和广泛支持而流行,但随着密码分析技术的发展,其安全性逐渐受到挑战。消息摘要的生成过程涉及四轮操作,每轮16步,总共64步。每一步操作都会改变四个缓冲区(A, B, C, D)中的值。

weixin_31860973的博客 1262

js-md5的简单使用

MD5(单项散列算法)的全称是Message-Digest Algorithm 5(信息-摘要算法),经MD2、MD3和MD4发展而来。1.输入任意长度的信息,经过处理,输出32位的信息;2.不同的输入得到的不同的结果(唯一性);3.根据32位的输入结果不可能反推出输入的信息(不可逆)1.防止被篡改,发布文件时同时发布文件的MD5值,在对方收到文件后再次进行MD5计算,最终获得的结果一样,说明未被篡改;

muzidigbig的博客 1万+

JavaScript页面加密实用技术:Base64、MD5和SHA案例解析

本文还有配套的精品资源,点击获取 简介:JavaScript是网页开发的关键脚本语言,常用于处理客户端逻辑和服务器通信。为确保代码安全,开发者会采用加密技术对JavaScript页面进行加密。本文重点介绍了三种常用加密方法:Base64编码、MD5和SHA哈希算法,并提供了实现这些加密方法的简单代码示例。Base64适用于数据传输,MD5和SHA则主要用于数据校验和密码存储...

weixin_30820933的博客 3495

【前端技巧】js-md5的简单使用

js-md5的简单使用

Outman's blog 9270

MD5 js源码

MD5 js源码 JS版 的MD5代码,有需要的朋友可以试试。。。。

山东大学软件测试实验2——系统功能测试

​ 给出一个被测试的 Web 应用系统(SUT)。http://211.87.232.162:8080/注:友情链接不用延伸测试。针对被测试的 Web 应用系统进行功能测试,发现其存在的缺陷。 ​

m0_74033391的博客 2409

JS之 MD5加密的使用

【代码】JS之 MD5加密的使用。

gyueh的博客 2254

从零理解域随机化:通过Isaac Lab的events.py掌握Sim-to-Real关键技术

本文深入解析域随机化技术如何通过Isaac Lab的events.py实现Sim-to-Real迁移,提升机器人策略在真实世界的鲁棒性。从刚体属性到环境条件的系统级随机化,详细介绍了工程实践中的关键参数配置与调试技巧,帮助开发者有效缩小仿真与现实的差距。

weixin_29062613的博客 260

很实用的js实现md5加密的方法

比如在使用火狐浏览器登陆时,输入的用户名及密码自动缓存后,下次登陆无需输入密码就可实现登录,这样就给别人留下了漏洞,当别人使用你的电脑登陆那么你的密码就泄露了。使用js加密时,缓存的加密后的密文,用密文做密码登录是不成功的,即使泄露也是泄露的密文,对密码不会造成威胁。3,使用js加密,减少了服务器加密时的资源消耗,从理论上提高了服务器的性能。为了安全,很有必要在做服务端的加密,无论从理论还是实际,两道门比一道门要安全些,至少给攻击者造成了一个障碍。当然,这种常用的加密库网上肯定是有的。

cihron的博客 7787

NVMe-MI 协议解析:带外管理框架与实现原理

本文深入解析了NVMe-MI协议,这是一种用于NVMe固态硬盘的标准化带外管理接口。文章详细阐述了其独立于操作系统的管理框架,通过MCTP协议栈实现,支持SMBus/I2C、PCIe VDM和I3C等物理层,从而在系统故障时仍能可靠地进行健康监控、固件升级等关键运维操作,是现代数据中心存储管理的核心基础设施。

lll78的博客 961

SpyGlass Lint脚本实战:如何用TCL自动化RTL代码检查(附完整配置模板)

本文详细介绍了如何利用TCL脚本实现SpyGlass Lint工具的自动化RTL代码检查。通过构建模块化、工程化的脚本框架,文章提供了从环境搭建、核心配置、规则定制到豁免管理的完整实战指南,并附有可复用的配置模板,旨在帮助IC设计工程师构建高效、一致的代码质量检查流水线。

weixin_29204205的博客 134

md5用户登录加密js

/** * [js-md5]{@link https://github.com/emn178/js-md5} * * @namespace md5 * @version 0.7.3 * @author Chen, Yi-Cyuan [emn178@gmail.com] * @copyright Chen, Yi-Cyuan 2014-2017 * @license MIT */ (function...

qq16075085_的博客 1135

从ADC校准到精准测量:避开PY32F030小信号采样的那些坑

本文深入探讨了PY32F030微控制器进行ADC小信号采样时面临的挑战与解决方案。从硬件设计、软件滤波算法到系统级校准策略,详细分析了如何避开常见陷阱,实现精准测量,特别是在25mV以下小信号场景中的应用实践。

ujm567890的博客 759

Javascript_MD5

function md5(s) { return binl2hex(core_md5(str2binl(s), s.length*strsize)); } function core_md5(x, len) { x[len >> 5] = (x[len >> 5]) | (128 >> 9)

Meteoric_cry 825

浅谈Mike 3D中制作垂向水温分层边界

本次以水温分层为例进行讲解,可应用于水库的水温分层模拟中

zhuzhujiayoua的博客 1415

Web渗透(一)CRLF注入简介

CRLF注入简介1、基础知识2、原理分析3、漏洞挖掘4、防御手段5、CRLF Payload: 1、基础知识 HTTP报文结构 从上图可以看到:HTTP报文由三部分组成:状态行、首部、主体。 可以看到状态行和首部中的每行都是以回车符(\r,%0d,CR)和换行符(\n,%0a,LF)结束。 十六进制编码分别为0x0d和0x0a,URL编码为%0D和%0A 这是因为HTTP规范中行应该使用CRLF结束。另外,首部和主体由两个CRLF分隔。 2、原理分析 CRLF是 “ 回车+换行 ”(\r\n)的简称。

weixin_39157582的博客 6823

js逆向入门之简概&实例--MD5

MD5值_360百科MD5_百度百科Message Digest Algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护。该算法的文件号为RFC 1321(R.Rivest,MIT Laboratory for Computer Science and RSA Data Security Inc. April 1992)。​MD5即Message-Digest Algorithm 5(信息-摘要算法5),用于确保信息传输完整一致。

金灰的博客 2292

ubuntu 18.04 + Kimera slam 安装与demo测试

环境:opencv 3.4.12,其他的都是按照文档下载的。 首先进行组件的安装 一、Kimera-VIO 安装参考文档:https://github.com/MIT-SPARK/Kimera-VIO/blob/master/docs/kimera_vio_install.md 按照文档装就好,在安装过程中碰到如下问题: 0、make 过程很卡,不要用所有的核 1、cmake过程中卡下载 ORBvoc.zip ,手动下载这个文件,解压,将里面的3个文件,放到/Kimera-VIO/vocabu.

dna葡萄糖的博客 3629

JS 实现MD5加密

大家好,我是梦辛工作室的灵,最近在写一个调试助手所需要实现MD5加密,就各处找了MD5 js加密的方法,然后现在封装好了给大家,方便以后使用 function md5(string) { function md5_RotateLeft(lValue, iShiftBits) { return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits)); } function md5_AddUnsig

灵神翁的博客 6422

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

【亲测免费】 js-md5 安装和配置指南

### 项目基础介绍 `js-md5` 是一个用于 JavaScript 的简单 MD5 哈希函数库,支持 UTF-8 编码。MD5(Message-Digest Algorithm 5)是一种广泛使用的密码散列函数,可以产生出一个 128 位(16 字节)的散列值,用于确保信息传输完整一致。 ### 主要的编程语言 该项目主要使用 JavaScript 编写,适用于前端开发环境。 ## 2....

gitblog_07278的博客 1833

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

“探秘JS加密算法:MD5、Base64、DES/AES、RSA你都知道吗?”

JS:JS全称JavaScript 是互联网上最流行的脚本语言,这门语言可用于 HTML 和 web,更可广泛用于服务器、PC、笔记本电脑、平板电脑和智能手机等设备。JavaScript 是一种轻量级的编程语言。JavaScript 是可插入 HTML 页面的编程代码。JavaScript 插入 HTML 页面后,可由所有的现代浏览器执行。JS反爬:JS反爬是指爬虫在获取网页数据时,遇到了通过JavaScript代码爬实现的反措施。

qq_73126462的博客 4151

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

上一篇: js逆向常用工具&爬虫工具
下一篇: 最新acs-token参数加密
dh_浩开玩笑
博客等级 码龄6年 131粉丝 17原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dh_浩开玩笑

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值