前段時(shí)間寫加密RSA算法到千,期間有個(gè)密鑰長度問題昌渤。密鑰長度決定可加密的字段的長度,涉及到字節(jié)字符和位之間的轉(zhuǎn)換憔四。當(dāng)時(shí)就有點(diǎn)迷糊膀息,表情就是這樣的。
然后我決定總結(jié)一下了赵,結(jié)果如下:
bit(位)潜支,也就是比特位,簡稱b柿汛,計(jì)算機(jī)數(shù)據(jù)的最小單位,數(shù)據(jù)存儲的最小單位冗酿。每個(gè)二進(jìn)制數(shù)字0或者1就是1個(gè)位;
Byte(字節(jié))络断,簡稱B裁替。
B與b不同,注意區(qū)分貌笨,KB是千字節(jié)弱判,Kb是千比特位。
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB
字符(漢字和漢字標(biāo)點(diǎn)符號都算字符)
ASCII碼:一個(gè)英文字母(不分大小寫)占一個(gè)字節(jié)的空間锥惋,一個(gè)中文漢字占兩個(gè)字節(jié)的空間昌腰。一個(gè)二進(jìn)制數(shù)字序列,在計(jì)算機(jī)中作為一個(gè)數(shù)字單元膀跌,一般為8位二進(jìn)制數(shù)遭商,換算為十進(jìn)制。最小值-128捅伤,最大值127劫流。如一個(gè)ASCII碼就是一個(gè)字節(jié)。
UTF-8編碼:一個(gè)英文字符等于一個(gè)字節(jié)丛忆,一個(gè)中文(含繁體)等于三個(gè)字節(jié)困介。中文標(biāo)點(diǎn)占三個(gè)字節(jié),英文標(biāo)點(diǎn)占一個(gè)字節(jié)
Unicode編碼:一個(gè)英文等于兩個(gè)字節(jié)蘸际,一個(gè)中文(含繁體)等于兩個(gè)字節(jié)座哩。中文標(biāo)點(diǎn)占兩個(gè)字節(jié),英文標(biāo)點(diǎn)占兩個(gè)字節(jié)
然后說一下rsa密鑰長度對應(yīng)的加密字段的長度粮彤。
計(jì)算公式是:密鑰長度位數(shù)轉(zhuǎn)化成字節(jié)數(shù)減11(具體為啥減11不大清楚)
1024位密鑰可加密長度為117字節(jié)
2048位密鑰可加密長度為245字節(jié)
目前查到的只有這些根穷,有錯(cuò)誤的歡迎大家留言改正!5挤亍屿良!