base64与MD5

因为最近的工作需要接触了一些和base64相关的代码,今天上网的时候仔细查了一下,顺便查了以前一直有听说没有研究的MD5校验,写一点心得.

base64实际上是一种简单的字符序列化,从字面上的意思来看就是以一种字符序列来记录原数据,每个字符含有6位数字,因此成为base64(2^6)

之所以使用6位数字主要原因在于26个英文字母大小写加上0~9已经有62个字符了,再加上"+"和"/"正好凑了64和字符,方便记录和传输.

传统的ASCII码使用的是7位字符,但ASCII中有很多字符是不可打印的,为了方便网络传输,使用base64更加便于读写以及复制黏贴.

另外base64也可以用于掩盖原始数据,使其变为暗文.

其编码和解码方式非常简单,将原有的8位字节序列3个一组,从高到低转化为4个6位字符,不够的字符补上"="字符用于填充.

字符序列化之后便于了传输,另一个问题就是传输的校验.之前我主要使用CRC校验数据,但对于数据量比较大的时候,CRC校验就存在了一定局限性

因此使用更高安全性的MD5算法校验是个不错的选择

CRC校验结果是32位的而MD5校验结果是128位的,及时很大的数据组合也能有效降低出错概率,经常用于密码和文件的校验

不过MD5的算法可不简单,反复的计算并不太适合速率比较低的单片机工作,因此在工业通讯中似乎很少见到使用,而对于通讯校验一般主要是防止误码

用MD5似乎有些大材小用了,所以考虑再三暂时还是使用CRC校验吧

posted on 2012-02-16 21:44 robocky 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/lancky/archive/2012/02/16/2354983.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值