java和js实现MD5加密

java

import java.security.MessageDigest;public class Demo2 {public static void main(String[] args) {Demo2 demo2 = new Demo2();String encry = demo2.md5("admin");System.out.println("加密后:" + encry);}/*** md5加密*/private static String md5(String input) {String encry = "";try {MessageDigest md5 = MessageDigest.getInstance("MD5");char[] charArray = input.toCharArray();byte[] byteArray = new byte[charArray.length];for (int i = 0; i < charArray.length; i++)byteArray[i] = (byte) charArray[i];byte[] md5Bytes = md5.digest(byteArray);StringBuffer hexValue = new StringBuffer();for (int i = 0; i < md5Bytes.length; i++) {int val = ((int) md5Bytes[i]) & 0xff;if (val < 16)hexValue.append("0");hexValue.append(Integer.toHexString(val));}encry = hexValue.toString();} catch (Exception e) {e.printStackTrace();}return encry;}
}

js

function MD5(sMessage) {function RotateLeft(lValue, iShiftBits) {return (lValue << iShiftBits) | (lValue >>> (32 - iShiftBits));}function AddUnsigned(lX, lY) {var lX4, lY4, lX8, lY8, lResult;lX8 = (lX & 0x80000000);lY8 = (lY & 0x80000000);lX4 = (lX & 0x40000000);lY4 = (lY & 0x40000000);lResult = (lX & 0x3FFFFFFF) + (lY & 0x3FFFFFFF);if (lX4 & lY4) return (lResult ^ 0x80000000 ^ lX8 ^ lY8);if (lX4 | lY4) {if (lResult & 0x40000000) return (lResult ^ 0xC0000000 ^ lX8 ^ lY8);else return (lResult ^ 0x40000000 ^ lX8 ^ lY8);} else return (lResult ^ lX8 ^ lY8);}function F(x, y, z) {return (x & y) | ((~x) & z);}function G(x, y, z) {return (x & z) | (y & (~z));}function H(x, y, z) {return (x ^ y ^ z);}function I(x, y, z) {return (y ^ (x | (~z)));}function FF(a, b, c, d, x, s, ac) {a = AddUnsigned(a, AddUnsigned(AddUnsigned(F(b, c, d), x), ac));return AddUnsigned(RotateLeft(a, s), b);}function GG(a, b, c, d, x, s, ac) {a = AddUnsigned(a, AddUnsigned(AddUnsigned(G(b, c, d), x), ac));return AddUnsigned(RotateLeft(a, s), b);}function HH(a, b, c, d, x, s, ac) {a = AddUnsigned(a, AddUnsigned(AddUnsigned(H(b, c, d), x), ac));return AddUnsigned(RotateLeft(a, s), b);}function II(a, b, c, d, x, s, ac) {a = AddUnsigned(a, AddUnsigned(AddUnsigned(I(b, c, d), x), ac));return AddUnsigned(RotateLeft(a, s), b);}function ConvertToWordArray(sMessage) {var lWordCount;var lMessageLength = sMessage.length;var lNumberOfWords_temp1 = lMessageLength + 8;var lNumberOfWords_temp2 = (lNumberOfWords_temp1 - (lNumberOfWords_temp1 % 64)) / 64;var lNumberOfWords = (lNumberOfWords_temp2 + 1) * 16;var lWordArray = Array(lNumberOfWords - 1);var lBytePosition = 0;var lByteCount = 0;while (lByteCount < lMessageLength) {lWordCount = (lByteCount - (lByteCount % 4)) / 4;lBytePosition = (lByteCount % 4) * 8;lWordArray[lWordCount] = (lWordArray[lWordCount] | (sMessage.charCodeAt(lByteCount) << lBytePosition));lByteCount++;}lWordCount = (lByteCount - (lByteCount % 4)) / 4;lBytePosition = (lByteCount % 4) * 8;lWordArray[lWordCount] = lWordArray[lWordCount] | (0x80 << lBytePosition);lWordArray[lNumberOfWords - 2] = lMessageLength << 3;lWordArray[lNumberOfWords - 1] = lMessageLength >>> 29;return lWordArray;}function WordToHex(lValue) {var WordToHexValue = "",WordToHexValue_temp = "",lByte, lCount;for (lCount = 0; lCount <= 3; lCount++) {lByte = (lValue >>> (lCount * 8)) & 255;WordToHexValue_temp = "0" + lByte.toString(16);WordToHexValue = WordToHexValue + WordToHexValue_temp.substr(WordToHexValue_temp.length - 2, 2)}return WordToHexValue;}var x = Array();var k, AA, BB, CC, DD, a, b, c, dvar S11 = 7,S12 = 12,S13 = 17,S14 = 22;var S21 = 5,S22 = 9,S23 = 14,S24 = 20;var S31 = 4,S32 = 11,S33 = 16,S34 = 23;var S41 = 6,S42 = 10,S43 = 15,S44 = 21;x = ConvertToWordArray(sMessage);a = 0x67452301;b = 0xEFCDAB89;c = 0x98BADCFE;d = 0x10325476;for (k = 0; k < x.length; k += 16) {AA = a;BB = b;CC = c;DD = d;a = FF(a, b, c, d, x[k + 0], S11, 0xD76AA478);d = FF(d, a, b, c, x[k + 1], S12, 0xE8C7B756);c = FF(c, d, a, b, x[k + 2], S13, 0x242070DB);b = FF(b, c, d, a, x[k + 3], S14, 0xC1BDCEEE);a = FF(a, b, c, d, x[k + 4], S11, 0xF57C0FAF);d = FF(d, a, b, c, x[k + 5], S12, 0x4787C62A);c = FF(c, d, a, b, x[k + 6], S13, 0xA8304613);b = FF(b, c, d, a, x[k + 7], S14, 0xFD469501);a = FF(a, b, c, d, x[k + 8], S11, 0x698098D8);d = FF(d, a, b, c, x[k + 9], S12, 0x8B44F7AF);c = FF(c, d, a, b, x[k + 10], S13, 0xFFFF5BB1);b = FF(b, c, d, a, x[k + 11], S14, 0x895CD7BE);a = FF(a, b, c, d, x[k + 12], S11, 0x6B901122);d = FF(d, a, b, c, x[k + 13], S12, 0xFD987193);c = FF(c, d, a, b, x[k + 14], S13, 0xA679438E);b = FF(b, c, d, a, x[k + 15], S14, 0x49B40821);a = GG(a, b, c, d, x[k + 1], S21, 0xF61E2562);d = GG(d, a, b, c, x[k + 6], S22, 0xC040B340);c = GG(c, d, a, b, x[k + 11], S23, 0x265E5A51);b = GG(b, c, d, a, x[k + 0], S24, 0xE9B6C7AA);a = GG(a, b, c, d, x[k + 5], S21, 0xD62F105D);d = GG(d, a, b, c, x[k + 10], S22, 0x2441453);c = GG(c, d, a, b, x[k + 15], S23, 0xD8A1E681);b = GG(b, c, d, a, x[k + 4], S24, 0xE7D3FBC8);a = GG(a, b, c, d, x[k + 9], S21, 0x21E1CDE6);d = GG(d, a, b, c, x[k + 14], S22, 0xC33707D6);c = GG(c, d, a, b, x[k + 3], S23, 0xF4D50D87);b = GG(b, c, d, a, x[k + 8], S24, 0x455A14ED);a = GG(a, b, c, d, x[k + 13], S21, 0xA9E3E905);d = GG(d, a, b, c, x[k + 2], S22, 0xFCEFA3F8);c = GG(c, d, a, b, x[k + 7], S23, 0x676F02D9);b = GG(b, c, d, a, x[k + 12], S24, 0x8D2A4C8A);a = HH(a, b, c, d, x[k + 5], S31, 0xFFFA3942);d = HH(d, a, b, c, x[k + 8], S32, 0x8771F681);c = HH(c, d, a, b, x[k + 11], S33, 0x6D9D6122);b = HH(b, c, d, a, x[k + 14], S34, 0xFDE5380C);a = HH(a, b, c, d, x[k + 1], S31, 0xA4BEEA44);d = HH(d, a, b, c, x[k + 4], S32, 0x4BDECFA9);c = HH(c, d, a, b, x[k + 7], S33, 0xF6BB4B60);b = HH(b, c, d, a, x[k + 10], S34, 0xBEBFBC70);a = HH(a, b, c, d, x[k + 13], S31, 0x289B7EC6);d = HH(d, a, b, c, x[k + 0], S32, 0xEAA127FA);c = HH(c, d, a, b, x[k + 3], S33, 0xD4EF3085);b = HH(b, c, d, a, x[k + 6], S34, 0x4881D05);a = HH(a, b, c, d, x[k + 9], S31, 0xD9D4D039);d = HH(d, a, b, c, x[k + 12], S32, 0xE6DB99E5);c = HH(c, d, a, b, x[k + 15], S33, 0x1FA27CF8);b = HH(b, c, d, a, x[k + 2], S34, 0xC4AC5665);a = II(a, b, c, d, x[k + 0], S41, 0xF4292244);d = II(d, a, b, c, x[k + 7], S42, 0x432AFF97);c = II(c, d, a, b, x[k + 14], S43, 0xAB9423A7);b = II(b, c, d, a, x[k + 5], S44, 0xFC93A039);a = II(a, b, c, d, x[k + 12], S41, 0x655B59C3);d = II(d, a, b, c, x[k + 3], S42, 0x8F0CCC92);c = II(c, d, a, b, x[k + 10], S43, 0xFFEFF47D);b = II(b, c, d, a, x[k + 1], S44, 0x85845DD1);a = II(a, b, c, d, x[k + 8], S41, 0x6FA87E4F);d = II(d, a, b, c, x[k + 15], S42, 0xFE2CE6E0);c = II(c, d, a, b, x[k + 6], S43, 0xA3014314);b = II(b, c, d, a, x[k + 13], S44, 0x4E0811A1);a = II(a, b, c, d, x[k + 4], S41, 0xF7537E82);d = II(d, a, b, c, x[k + 11], S42, 0xBD3AF235);c = II(c, d, a, b, x[k + 2], S43, 0x2AD7D2BB);b = II(b, c, d, a, x[k + 9], S44, 0xEB86D391);a = AddUnsigned(a, AA);b = AddUnsigned(b, BB);c = AddUnsigned(c, CC);d = AddUnsigned(d, DD);}var temp = WordToHex(a) + WordToHex(b) + WordToHex(c) + WordToHex(d);return temp.toLowerCase();
}

在这里插入图片描述

完了。谢谢!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/124916.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

webrtc 的Bundle group 和RTCP-MUX

1&#xff0c;最近调试程序的时候发现抱一个错误 max-bundle configured but session description has no BUNDLE group 最后发现是一个参数设置错误 config.bundle_policy webrtc::PeerConnectionInterface::BundlePolicy::kBundlePolicyMaxBundle; 2&#xff0c;rtcp-mu…

Scrum工作模式及Scrum工具

Scrum工作模式是一种敏捷软件开发方法&#xff0c;其核心是团队合作和自我组织&#xff0c;旨在通过短周期的迭代开发&#xff0c;实现快速反馈和持续改进。 Scrum工作模式包括以下角色和活动&#xff1a; 1、产品负责人&#xff08;Product Owner&#xff09;&#xff1a;负…

Cesium 根据鼠标点击生成点击点的坐标信息

Cesium 根据鼠标点击生成点击点的坐标信息 一、需求二、分析1. 创建鼠标点击事件2. 点击生成坐标但不是经纬度&#xff0c;而是笛卡尔坐标系下的坐标&#xff0c;这个时候需要做一次转换3. 完整代码 三、数据保存 一、需求 在日常开发中 &#xff0c;会遇到根据鼠标点击生成对应…

【数据仓库基础(二)】数据仓库架构

文章目录 一. 基本架构二. 主要数据仓库架构1. 数据集市架构1.1. 独立数据集市1.2. 从属数据集市1.3. Inmon企业信息工厂架构 2. Kimball数据仓库架构3. 混合型数据仓库架构 三. 操作数据存储&#xff08;ODS&#xff09; 一. 基本架构 架构是指系统的一个或多个结构。结构中包…

echarts饼图label自定义样式

生成的options {"tooltip": {"trigger": "item","axisPointer": {"type": "shadow"},"backgroundColor": "rgba(9, 24, 48, 0.5)","borderColor": "rgba(255,255,255,0.4)&q…

Commonsense Knowledge Base Completion with Structural and Semantic Context

摘要 与研究较多的传统知识库(如Freebase)相比&#xff0c;常识性知识图(如ATOMIC和ConceptNet)的自动知识库补全提出了独特的挑战。常识知识图使用自由形式的文本来表示节点&#xff0c;与传统知识库相比&#xff0c;导致节点数量增加了几个数量级(与Freebase (FB15K237)相比…

Pythonの类

Python是一种面向对象编程语言&#xff0c;因此类在Python中是很重要的概念。类是一种定义数据和行为的模板&#xff0c;可以创建对象并针对特定的问题对其进行操作。 在Python中&#xff0c;类的定义以关键字"class"开头&#xff0c;后跟类的名称。类可以包含方法和…

网络编程相关知识

写一个应用程序,让这个程序可以使用网络通信,这里就需要调用传输层提供的api,传输层提供协议,主要是两个: UDP,TCP,它们分别提供了一套不同的api,socket api. UDP和TCP UDP:无连接,不可靠传输,面向数据报,全双工 TCP:有连接,可靠传输,面向字节流,全双工 一个客户端可以连接多…

arco-design-vue的tree组件实现右击事件

arco-design-vue的tree组件实现右击事件 业务中需要使用到tree组件&#xff0c;并且还要对tree实现自定义鼠标右击事件。在arco-design-vue的文档中&#xff0c;可以明确的看到&#xff0c;tree组件并没有右击事件的相关回调&#xff0c;那要如何实现呢&#xff1f;&#xff1f…

高等数学教材重难点题型总结(四)不定积分

难点在于量级&#xff0c;不定积分一定要多练多见才能游刃有余~ 1.利用求导公式验证等式 2.计算不定积分

亚马逊秋季促销指南——如何更好的利用促销?

最新消息&#xff0c;亚马逊官方宣布将会在10月份举行Prime会员大促&#xff0c;覆盖多个站点&#xff0c;亚马逊卖家们一定要抓住这波促销机会&#xff0c;在这个秋季再冲一把&#xff01;但是还有一些小白玩家可能对于亚马逊促销了解不够&#xff0c;那么接下来我要讲的这些准…

[SpringBoot3]博客管理系统(源码放评论区了)

八、博客管理系统 创建新的SpringBoot项目&#xff0c;综合运用以上知识点&#xff0c;做一个文章管理的后台应用。依赖&#xff1a; Spring WebLombokThymeleafMyBatis FrameworkMySQL DriverBean Validationhutool 需求&#xff1a;文章管理工作&#xff0c;发布新文章&…

Databend 数据集成方案 | Data Infra 第 15 期

本期的 Data Infra 直播活动我们邀请到了 Databend Cloud 研发工程师-韩山杰&#xff0c;与大家分享主题为《 Databend 数据集成方案》的相关知识。 在本次分享中&#xff0c;你将会学到在云上基于 Databend 及 Databend Cloud 构建应用&#xff0c;掌握 Databend CDC 和 Data…

基于改进莱维飞行和混沌映射的粒子群优化算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

[国产MCU]-W801开发实例-MQTT客户端通信

MQTT客户端通信 文章目录 MQTT客户端通信1、MQTT介绍2、W801的MQTT客户端相关API介绍3、代码实现本文将详细介绍如何在W801中使用MQTT协议通信。 1、MQTT介绍 MQTT 被称为消息队列遥测传输协议。它是一种轻量级消息传递协议,可通过简单的通信机制帮助资源受限的网络客户端。 …

Sumo中Traci.trafficlight详解(上)

Sumo中Traci.trafficlight详解&#xff08;上&#xff09; 记录慢慢学习traci的每一天&#xff0c;希望也能帮到你 文章目录 Sumo中Traci.trafficlight详解&#xff08;上&#xff09;Traci.trafficlight信号灯参数讲解1.getAllProgramLogics(self,tlsID)2.getBlockingVehicle…

排序算法的稳定性

稳定性&#xff1a;对于一个数&#xff0c;经过多次排序&#xff0c;保留一个数之间的相对次序 在基础类型数据上&#xff0c;稳定性用处不大 在非基础类型上&#xff0c;可以做到对于相同元素来说&#xff0c;排完序相同元素之间的相对次序不变 归并排序在merge的过程中先拷贝…

Vulnhub: Masashi: 1靶机

kali&#xff1a;192.168.111.111 靶机&#xff1a;192.168.111.236 信息收集 端口扫描 nmap -A -sC -v -sV -T5 -p- --scripthttp-enum 192.168.111.236查看80端口的robots.txt提示三个文件 snmpwalk.txt内容&#xff0c;tftp服务在1337端口 sshfolder.txt内容&#xff0c…

【电路参考】缓启动电路

一、外部供电直接上电可能导致的问题 1、在热拔插的过程中&#xff0c;两个连接器的机械接触&#xff0c;触点在瞬间会出现弹跳&#xff0c;电源不稳&#xff0c;发生震荡。这期间系统工作可能造成不稳定。 2、由于电路中存在滤波或大电解电容&#xff0c;在上电瞬间&#xff…

windows苹果商店上架ipa(基于appuploader)

参考文章&#xff1a; 上传ipa到appstore详细步骤 1、苹果商店地址&#xff1a;https://appstoreconnect.apple.com/apps 2、创建我的app 使用hbuilderx或apicloud云打包后&#xff0c;会生成一个ipa文件&#xff0c;而iphone是无法直接安装这个ipa文件的&#xff0c;需要将这…