无码av一区二区三区无码,在线观看老湿视频福利,日韩经典三级片,成 人色 网 站 欧美大片在线观看

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊

摘要算法:MD2

2022-10-15 02:06 作者:CSDN首席噴子  | 我要投稿

MD2是MD系列摘要算法的鼻祖,能夠接受任意長度的輸入,得到針對輸入特定的16字節(jié)(128位)輸出。輸入數(shù)據(jù)只要變化一位,輸出就會(huì)相應(yīng)變化,因此可以用于驗(yàn)證數(shù)據(jù)。盡管現(xiàn)在已經(jīng)有了更安全的摘要算法,如SHA3,但其和MD2的基本結(jié)構(gòu)都是一樣的。其計(jì)算方法為:

(1)將數(shù)據(jù)填充為16的整倍數(shù),填充值是缺失的字節(jié)數(shù)。比如“a”,其后面需要填充15個(gè)字節(jié),這15個(gè)字節(jié)的值都是0x0f。此時(shí)字節(jié)總數(shù)為N,記填充后數(shù)據(jù)為M。

(2)為這N個(gè)字節(jié)添加校驗(yàn)和。MD2根據(jù)圓周率構(gòu)建了一個(gè)256位偽隨機(jī)數(shù)組,稱為“S盒”。通過S盒計(jì)算偽碼如下:

checksum[16];

For i = 0 to 15 do

????checksum[i] = 0;

End; ?// 初始化

L = 0;

For i = 0 to (N / 16 - 1) do

????For j = 0 to 15 do

????????c_tmp = M[i * 16 + j];

????????checksum[j] = checksum[j] ?^ S[c_tmp ^ L];

????????L = checksum[j];

????End; // j

End; // I

然后把這16字節(jié)的校驗(yàn)和放在填充后的數(shù)據(jù)后面,記為M`,此時(shí)總長度為N`。

(3)初始化緩存。創(chuàng)建一個(gè)48位的輸出緩存X,并清零初始化。

(4)處理數(shù)據(jù)。

For i = 0 to (N` / 16 – 1) do

????For j = 0 to 15 do

????????X[16 + j] = M`[i * 16 + j];

????????X[32 + j] = X[16 + j] ^ X[j];

????End;

????t = 0;

????For j = 0 to 17 do

????????For k = 0 to 47 do

????????????t = X[k] = X[k] ^ S[t];

????????End;

????t = (t + j) % 256;

????End;

End;

(5)最后把前16字節(jié)取出,就是MD2值。

一個(gè)C語言實(shí)例如下:


摘要算法:MD2的評論 (共 條)

分享到微博請遵守國家法律
利辛县| 滨州市| 东兴市| 大石桥市| 峡江县| 鲁甸县| 大安市| 休宁县| 镇坪县| 汤原县| 左云县| 麦盖提县| 洪湖市| 喀喇沁旗| 皋兰县| 嵊泗县| 美姑县| 岳阳县| 桓台县| 宝清县| 乌拉特前旗| 威宁| 报价| 岳阳县| 永吉县| 巨野县| 沾益县| 高清| 广元市| 大兴区| 喜德县| 台北县| 醴陵市| 江永县| 阳西县| 来凤县| 安平县| 米脂县| 神农架林区| 越西县| 辉县市|