clear
set data[ 0 ] = ""
for a = 0 to 100
set data[ 0 ] = $data[ 0 ] $a
next a
message "原始输入数据是 " $data[ 0 ]
message "将输入数据分成两部分,前一部分是64的整数倍,剩下的为后一部分"
set data[ 1 ] = mid( $data[ 0 ], 0, 64 )
set data[ 2 ] = mid( $data[ 0 ], 64 )
message "前一部分是 " $data[ 1 ]
message "后一部分是 " $data[ 2 ]
message "对前一部分进行sha1非填充计算"
set data[ 3 ] = sha1_hash_nonfill( $data[ 1 ] )
message "前一部分的hash是 " $data[ 3 ]
message "计算全部数据的sha1值"
set data[ 4 ] = sha1_hash( $data[ 0 ] )
message "所有数据的hash是 " $data[ 4 ]
message "根据前一部分数据的长度,前一部分数据的sha1值,以及最后一块的数据计算所有数据的sha1值"
set data[ 5 ] = sha1_hash_lastblock( 64, $data[ 3 ], $data[ 2 ] )
message "分步计算所有数据的hash是 " $data[ 5 ]
if $data[ 5 ] == $data[ 4 ]
message "sha1计算完全成功"
else
message "sha1计算失败"
pause
endif
//[-]==========================[X]
//|原始输入数据是 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F6061626364
//[-]==========================[-]
//[-]==========================[X]
//|将输入数据分成两部分,前一部分是64的整数倍,剩下的为后一部分
//[-]==========================[-]
//[-]==========================[X]
//|前一部分是 000102030405060708090A0B0C0D0E0F101112131415161718191A1B1C1D1E1F202122232425262728292A2B2C2D2E2F303132333435363738393A3B3C3D3E3F
//[-]==========================[-]
//[-]==========================[X]
//|后一部分是 404142434445464748494A4B4C4D4E4F505152535455565758595A5B5C5D5E5F6061626364
//[-]==========================[-]
//[-]==========================[X]
//|对前一部分进行sha1非填充计算
//[-]==========================[-]
//[-]==========================[X]
//|前一部分的hash是 B9AC757BBC2979252E22727406872F94CBEA56A1
//[-]==========================[-]
//[-]==========================[X]
//|计算全部数据的sha1值
//[-]==========================[-]
//[-]==========================[X]
//|所有数据的hash是 AF2AF2734BB2BAA288940CB62109F4849DAA347F
//[-]==========================[-]
//[-]==========================[X]
//|根据前一部分数据的长度,前一部分数据的sha1值,以及最后一块的数据计算所有数据的sha1值
//[-]==========================[-]
//[-]==========================[X]
//|分步计算所有数据的hash是 AF2AF2734BB2BAA288940CB62109F4849DAA347F
//[-]==========================[-]
//[-]==========================[X]
//|sha1计算完全成功
//[-]==========================[-]