字符、字节、位等之间的转换(自我收集,欢迎指教)

前段时间写加密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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值