(為什麼還沒交的作業我就敢放源**了呢,因為這次是用 go 寫的,我相信我的同學以及學弟學妹們應該沒有會 go 的吧,換個方式思考要是你都能自學 go 了也不至於淪落到看我的 blog 吧 hhhhh)
解密公式:
將 (2) 帶入 (3) 中,有:
再把 (4) 帶入,最後就有:
最後的解密**實現:
func desdecode(m byte, key uint64) byte
d |= uint64(o2) << (j * 8)
} // ip 置換
o := ipreplace(d)
l := uint32(o)
r := uint32(o >> 32)
t := uint32(0)
// 輪加密
for j := 0; j < 16; j ++
// 左右交換合併
d = uint64(r)
d |= uint64(l) << 32
printint64b("r0", d)
// ip 逆向置換
d = inverseipreplace(d)
printint64b("ipinverse: ", d)
// 追加到 bytes
// 將 uint64 轉化為 8 位元組
for j := 0; j < 8; j ++
} }return out
}
密碼學原理
備註 vpn 技術中的密碼學原理。用於對使用者資料進行加密,常用演算法有 des 3des aes rsa dh 演算法。根據金鑰特徵,分為對稱和非對稱演算法。使用者 a 通過網際網路向使用者 b 傳送訊息,資料如果不經過加密可能遭到竊取 篡改。採用對稱演算法對資料進行加密,所謂的對稱是指通訊雙方用...
密碼學 DES密碼的C 實現
1 des密碼2 理解演算法最重要,最好自己動手實現試試看,可以使用mfc寫乙個簡單的互動介面 3 4 include5 include6 include 78 define bit bool 910 using namespace std 1112 bit k 16 48 1314 int15 初...
現代密碼學之DES詳解
下面是初始置換 如何操作的呢?在ip中我們先把原資料的第一位放在第58位上,第二位放到第50位上。把64位的輸入全部按照 置換。置換完畢後我們就可以進入到後面的round演算法中去了,在輸出的時候我們要通過ip 1將原資料還原。可以看到在ip 1中,我們將在第58位的位元組重新放回到第一位中,將第5...