《密码加密》
前段时间看了一部电影,讲述的是一个二战期间的科学家,为军方工作,他每天的工作就是通过截取的敌人的电报信息然后破译,经过很多次尝试最后成功找到方法的故事。
看了电影之后,对密码学有了兴趣,但是上网查了查关于密码学的资料后发现脑子一团槽,在这里简单讲一下自己对一些浅层的密码学的理解。
首先,我们熟知的,摩斯密码,这个密码的基本原理其实很简单,一共有两种字符‘-’、‘—’,三种间断短中长组成,拿求救信号SOS举例,因为s是由三条-组成,O是由三条—组成,因此,当遇到危险是,国际上通用的---———---即可代表求救。
但现在这种密码是公布于世的,因此也是不安全的,我们只要参照摩斯密码表做出一个反编译器,即可进行破译,因此,还需要寻找其他的加密方法。
在现阶段,我们一般认为有两种密码加密方式,单向加密和双向加密,双向加密其实是比较常用的,比如我们在网上购物的时候,要向网站提交信用卡密码,当然不能直接让密码在网上以明文传送,因此要进行双向加密,先进行加密,在网站接收后再进行解密。单向加密刚好相反,一旦对数据进行了加密之后,是没有办法进行解密的,有人可能会说,这样的加密有什么作用,但其实在一个系统中,我们对于密码加密后的信息不需要进行理解,只需要将其保存就可以,因此单向加密还是有其用处的。
后来,我了解到了MD5加密,MD5就是这样的单向加密算法, 它使用的是一种哈希函数,又称散列函数,这种应用在MD5中的哈希算法是一种从明文到密文的不可逆的映射。可以讲任意长度的输入转化为固定长度的输出,这个固定长度的输出就成为原消息的映射,MD5码是由128位二进制数组成,最多有二的128次方中排序,显然是有无数种可能的。