Calculate MD5 for string “Jerry” via ABAP

source code:

DATA: md5_160 TYPE hash160.
CALL FUNCTION 'CALCULATE_HASH_FOR_CHAR'EXPORTINGalg            = 'MD5'data           = 'Jerry'length         = 0IMPORTINGhash           = md5_160EXCEPTIONSunknown_alg    = 1param_error    = 2internal_error = 3OTHERS         = 4.
CHECK sy-subrc = 0.
WRITE: / md5_160.

output:

Calculate via JavaScript

Source code:

<html>
<script>
var MD5 = function (string) {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(string) {var lWordCount;var lMessageLength = string.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] | (string.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;};function Utf8Encode(string) {string = string.replace(/\r\n/g,"\n");var utftext = "";for (var n = 0; n < string.length; n++) {var c = string.charCodeAt(n);if (c < 128) {utftext += String.fromCharCode(c);}else if((c > 127) && (c < 2048)) {utftext += String.fromCharCode((c >> 6) | 192);utftext += String.fromCharCode((c & 63) | 128);}else {utftext += String.fromCharCode((c >> 12) | 224);utftext += String.fromCharCode(((c >> 6) & 63) | 128);utftext += String.fromCharCode((c & 63) | 128);}}return utftext;};var x=Array();var k,AA,BB,CC,DD,a,b,c,d;var 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;string = Utf8Encode(string);x = ConvertToWordArray(string);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();
}
console.log(MD5("Jerry"));
</script>
</html>

Output:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":

JavaScript和ABAP的MD5计算源代码相关推荐

  1. JavaScript实现闭式函数计算特定位置的斐波那契数fibonacciNthClosedForm算法(附完整源码)

    JavaScript实现闭式函数计算特定位置的斐波那契数fibonacciNthClosedForm算法(附完整源码) fibonacciNthClosedForm.js完整源代码 fibonacci ...

  2. 文件Md5计算(C语言版)

    文件Md5计算(C语言版) 这是一个参考了网上很多人的C语言以及C++版本的计算工具而制作的,已对其优化了一部分,加了新功能:如果能计算出有效的Md5则自动复制到剪贴板,并且支持拖拽文件到窗口上,完全 ...

  3. 基于流式的md5计算-多线程下载工具Lwget介绍

    在数据传输的时候,我们希望实现以下目标: 1. 使用多线程传输,加速下载速度 2. 数据在传输过程中,进行流式md5计算,避免在传输完毕之后校验大文件 3. 支持断点续传 4. 支持http协议和ft ...

  4. MD5计算,一个扩展类,哪里都能用

    最近有同学问到如何计算一个字节数组的MD5值,现在分享一个扩展类,有了它,MD5计算再也不用其他了. 先看示例: string s = "hello world";var s_md ...

  5. 一点关于MD5计算的封装

    本文参考:http://snowolf.iteye.com/blog/379860 MD5 是message-digest algorithm 5 (信息-摘要算法)缩写,广泛用于加密和解密技术,常用 ...

  6. java go md5_Go语言中三种不同md5计算方式的性能比较

    前言 本文主要介绍的是三种不同的 md5 计算方式,其实区别是读文件的不同,也就是磁盘 I/O, 所以也可以举一反三用在网络 I/O 上.下面来一起看看吧. ReadFile 先看第一种, 简单粗暴: ...

  7. SAP ABAP BASE64 MD5 加解密

    SAP ABAP BASE64 MD5 加解密的完整代码,开箱即用. abap base64 加解密 SAP EPIC 银企直连 616261702062617365363420E58AA0E8A7A ...

  8. C++:符合RFC1321规范的MD5计算C++实现

    MD5使用比较广泛,并不只局限于数据加密,它的概念这里就不介绍了,这里只谈谈MD5的代码实现. MD5计算的算法是统一的,但实现如果实现时参数不一样,同样一段数据,不同的算法计算出的结果就不一样.为了 ...

  9. 使用Go语言完成文件夹的MD5计算

    案例需求:我们的监测系统会定期的检查配置文件的变动,这些配置文件放置在一个独立的文件夹下面,我们可以通过对于整个的文件夹内所有文件进行md5的计算来完成监测,本文就通过Go语言实现了一个命令行工具,完 ...

最新文章

  1. request获取数据的几种方法
  2. ubuntu更换阿里源
  3. 7-4 jmu-Java-06异常-04-自定义异常(综合) (15 分)
  4. 查看某个进程是否还有外部请求进来
  5. MyEclipse中常用的快捷键
  6. python读取tiff数据_opencv-python读取tiff影像,并展示
  7. C 网络库都干了什么?
  8. 2007基于循环链表的队列的基本操作(C++)
  9. 将Capicom调用代码封装到ActiveX——解决javascript调Capicom读取数字证书信息时,IE弹出安全提示的问题...
  10. C 语言 —— ! 和 ~(感叹号和波浪号)
  11. Linux多线程服务端编程:使用muduo C++网络库
  12. php+laravel 扫码二维码签到
  13. android——webview解决goback()后,界面会刷新的问题
  14. 安卓xml文件中设置动画匀速旋转无效?
  15. NB-IoT的DRX、eDRX、PSM三个模式怎么用?通俗解释,看完就懂!
  16. 菜鸟写jquery入门教程(for web前端开发群4)(03)
  17. 华为云·云享专家李万龙: IoT 梦想,从0到1的实现
  18. html5实现迷宫游戏,HTML5 经典迷宫图
  19. 关于电子科技大学学生睡眠时间的调查报告
  20. 曹操比袁绍“宽容”并非胸襟开阔

热门文章

  1. avalon2学习教程04显示隐藏处理
  2. 使用Java8新特性(stream流、Lambda表达式)实现多个List 的笛卡尔乘积 返回需要的List<JavaBean>
  3. win7下更改为achi硬盘模式
  4. hosts文件是什么?
  5. JavaScript Object.defineProperty()方法详解
  6. C# 站点IP访问频率限制 针对单个站点
  7. (转)更新Java final常量后,请重新编译你的class
  8. 上传图片文件(支持远程存储)
  9. J2EE中下载和安装spring插件
  10. Orm框架介绍和常见的Android Orm框架