[B2D / B3D] SHA-256 Checksum
Übersicht
BlitzBasic
Codearchiv
|
Betreff: [B2D / B3D] SHA-256 Checksum
|
Fr, Okt 14, 2005 3:28
Antworten mit Zitat
|
Portierung der BlitzMax Version aus dem Blitzbasic.com Code archive von TwoEyedPete
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN] Graphics 658,300,16,2 Dim SHA256_Dat(0)
txt$ = \"The quick brown fox jumps over the lazy dog\" Print txt$ Print SHA256$(txt$) Print \"d7a8fbb307d7809469ca9abcb0082e4f8d5651e46d3cdb762d02d0bf37c9e592 <- Should be this\"
WaitKey() End
Function SHA256$(in$) Local h0=$6A09E667,h1=$BB67AE85,h2=$3C6EF372,h3=$A54FF53A Local h4=$510E527F,h5=$9B05688C,h6=$1F83D9AB,h7=$5BE0CD19 Local k[63],inlen=Len(in$) k[ 0]=$428A2F98:k[ 1]=$71374491:k[ 2]=$B5C0FBCF:k[ 3]=$E9B5DBA5:k[ 4]=$3956C25B:k[ 5]=$59F111F1 k[ 6]=$923F82A4:k[ 7]=$AB1C5ED5:k[ 8]=$D807AA98:k[ 9]=$12835B01:k[10]=$243185BE:k[11]=$550C7DC3 k[12]=$72BE5D74:k[13]=$80DEB1FE:k[14]=$9BDC06A7:k[15]=$C19BF174:k[16]=$E49B69C1:k[17]=$EFBE4786 k[18]=$0FC19DC6:k[19]=$240CA1CC:k[20]=$2DE92C6F:k[21]=$4A7484AA:k[22]=$5CB0A9DC:k[23]=$76F988DA k[24]=$983E5152:k[25]=$A831C66D:k[26]=$B00327C8:k[27]=$BF597FC7:k[28]=$C6E00BF3:k[29]=$D5A79147 k[30]=$06CA6351:k[31]=$14292967:k[32]=$27B70A85:k[33]=$2E1B2138:k[34]=$4D2C6DFC:k[35]=$53380D13 k[36]=$650A7354:k[37]=$766A0ABB:k[38]=$81C2C92E:k[39]=$92722C85:k[40]=$A2BFE8A1:k[41]=$A81A664B k[42]=$C24B8B70:k[43]=$C76C51A3:k[44]=$D192E819:k[45]=$D6990624:k[46]=$F40E3585:k[47]=$106AA070 k[48]=$19A4C116:k[49]=$1E376C08:k[50]=$2748774C:k[51]=$34B0BCB5:k[52]=$391C0CB3:k[53]=$4ED8AA4A k[54]=$5B9CCA4F:k[55]=$682E6FF3:k[56]=$748F82EE:k[57]=$78A5636F:k[58]=$84C87814:k[59]=$8CC70208 k[60]=$90BEFFFA:k[61]=$A4506CEB:k[62]=$BEF9A3F7:k[63]=$C67178F2 Local intCount=(((inlen+8)Shr 6)+1)Shl 4 Dim SHA256_Dat(intCount-1) For c=1 To inlen SHA256_Dat((c-1)Shr 2)=(SHA256_Dat((c-1)Shr 2)Shl 8)Or(Asc(Mid$(in$,c,1))And $FF) Next SHA256_Dat(inlen Shr 2)=((SHA256_Dat(inlen Shr 2)Shl 8)Or $80)Shl((3-(inlen And 3))Shl 3) SHA256_Dat(intCount-2)=((inlen Shl 3)Shr 31)Shr 1 SHA256_Dat(intCount-1)=(inlen Shl 3)And $FFFFFFFF For chunkStart=0 To intCount-1 Step 16 a=h0:b=h1:c=h2:d=h3:e=h4:f=h5:g=h6:h=h7 Local w[63] For y=0 To 15 w[y]=SHA256_Dat(chunkStart+y) Next For i=16 To 63 w[i]=w[i-16]+((((w[i-15])Shr 7)Or((w[i-15])Shl 25))Xor(((w[i-15])Shr 18)Or((w[i-15])Shl 14))Xor(w[i-15]Shr 3)) w[i]=w[i]+w[i-7]+((((w[i-2])Shr 17)Or((w[i-2])Shl 15))Xor(((w[i-2])Shr 19)Or((w[i-2])Shl 13))Xor(w[i-2]Shr 10)) Next For i=0 To 63 t0=(((a Shr 2)Or(a Shl 30))Xor((a Shr 13)Or(a Shl 19))Xor((a Shr 22)Or(a Shl 10))) t0=t0+((a And b)Or(b And c)Or(c And a)) t1=h+(((e Shr 6)Or(e Shl 26))Xor((e Shr 11)Or(e Shl 21))Xor((e Shr 25)Or(e Shl 7))) t1=t1+((e And f)Or(~e And g))+k[i]+w[i] h=g:g=f:f=e:e=d+t1:d=c:c=b:b=a:a=t0+t1 Next h0=h0+a:h1=h1+b:h2=h2+c:h3=h3+d:h4=h4+e:h5=h5+f:h6=h6+g:h7=h7+h Next Return Lower(Hex(h0)+Hex(h1)+Hex(h2)+Hex(h3)+Hex(h4)+Hex(h5)+Hex(h6)+Hex(h7)) End Function
|
|
Übersicht
BlitzBasic
Codearchiv
Powered by phpBB © 2001 - 2006, phpBB Group