程序员

字符、字节、位等之间的转换

2018-09-10  本文已影响17人  LcFireRabbit

前段时间写加密RSA算法,期间有个密钥长度问题。密钥长度决定可加密的字段的长度,涉及到字节字符和位之间的转换。当时就有点迷糊,表情就是这样的。


黑脸+懵

然后我决定总结一下,结果如下:

bit(位),也就是比特位,简称b,计算机数据的最小单位,数据存储的最小单位。每个二进制数字0或者1就是1个位;

Byte(字节),简称B。

B与b不同,注意区分,KB是千字节,Kb是千比特位。
1B=8b
1KB=1024B
1MB=1024KB
1GB=1024MB
1TB=1024GB

字符(汉字和汉字标点符号都算字符)

ASCII码:一个英文字母(不分大小写)占一个字节的空间,一个中文汉字占两个字节的空间。一个二进制数字序列,在计算机中作为一个数字单元,一般为8位二进制数,换算为十进制。最小值-128,最大值127。如一个ASCII码就是一个字节。

UTF-8编码:一个英文字符等于一个字节,一个中文(含繁体)等于三个字节。中文标点占三个字节,英文标点占一个字节

Unicode编码:一个英文等于两个字节,一个中文(含繁体)等于两个字节。中文标点占两个字节,英文标点占两个字节

然后说一下rsa密钥长度对应的加密字段的长度。

计算公式是:密钥长度位数转化成字节数减11(具体为啥减11不大清楚)

1024位密钥可加密长度为117字节

2048位密钥可加密长度为245字节

目前查到的只有这些,有错误的欢迎大家留言改正!!!


LcFireRabbit

本次总结完毕(@LcFireRabbit)

上一篇下一篇

猜你喜欢

热点阅读