From 41b5304712c4205764e67ae6ca3114ad43b28e8b Mon Sep 17 00:00:00 2001 From: ValKmjolnir Date: Wed, 30 Mar 2022 21:42:30 +0800 Subject: [PATCH] update test/md5compare.nas and CAUTION: now the cpp&nas md5 program may not calculate strings including unicode --- test/md5.nas | 11 ++++--- test/md5compare.nas | 72 +++++++++++++++++++++++++++++++++++++++++---- 2 files changed, 74 insertions(+), 9 deletions(-) diff --git a/test/md5.nas b/test/md5.nas index d43d38f..189194a 100644 --- a/test/md5.nas +++ b/test/md5.nas @@ -55,12 +55,12 @@ var u32_bits_not=func(x){ } var hex32str=func(num){ - var ch="0123456789abcdef"; + var ch=["0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f"]; var res=""; for(var i=0;i<4;i+=1){ var tmp=""; for(var j=0;j<2;j+=1){ - tmp=chr(ch[u32_bits_and(num,0x0f)])~tmp; + tmp=ch[u32_bits_and(num,0x0f)]~tmp; num=int(num/16); } res~=tmp; @@ -138,11 +138,12 @@ var _md5=func(s){ var len=size(s)*8; var res=[]; + setsize(res,len); var v=[128,64,32,16,8,4,2,1]; for(var i=0;i16 uint32=>64 byte=>512 bit + # because using double to discribe number + # this may only work when string's length is under 1<<51 tmp=[]; for(var i=0;i!@#$%^&*()-=\\|[]{}"; + var ch=[ + "0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","+", + "_","*","/","\'","\"",".",",",";",":","<",">","!","@","#","$","%", + "^","&","*","(",")","-","=","\\","|","[","]","{","}","`"," ","\t","?" + ]; var (prt,lastpercent,percent)=("",0,0); for(var i=1;i<=total;i+=1){ var s=""; for(var j=0;j