本人是个密码爱好者又是狂热的计算机爱好者,故合二为一写下了这篇文章,这里列举的密码以及代码都是很简单的,假如你有兴趣可以举一反三,写出更多密码的算法代码(手打)
密码由来已久,传说古希腊战争中就反复运用密码来传递重要的情报,而在之后的两次世界大战中更加经常见到它的使用。在远离世界大战阴影的今天,密码也不曾远离人们的视线,就拿红客们最熟悉的MD5来说,经常可以在注入搜索password内容时发现密码使用了MD5加密手段进行保护,其中MD5就是一种加密算法。
破解密码是很困难的,以一个凯撒密码为例,它的原理是将明文字符按字母表的顺序顺次移位,以abc为例,假如顺次移动3位那加密后的密文就是"def"(此时我们把顺次移动的“3”称之为密钥),由于真实破解密码时我们不可能知道密钥,因此我们需要对每种密钥的情况进行破解,那就需要试26-1=25次,想想每一次都需要对字符串进行移位,假如是比较长的字符串,那纯手算计算量就相当的可观,另外一些安全性很好的加密算法的话,破解需要尝试的次数可能要成百上千次,那手工破解密码肯定是不行的,于是计算机进行破解密码的方法应运而生,以一个每秒可以运算10亿次的计算机来说,对于手工计算需要很长时间的密码,说不定它只要几分钟就可以破解完毕,下面就是利用计算机来破解密码的范例。
密码由来已久,传说古希腊战争中就反复运用密码来传递重要的情报,而在之后的两次世界大战中更加经常见到它的使用。在远离世界大战阴影的今天,密码也不曾远离人们的视线,就拿红客们最熟悉的MD5来说,经常可以在注入搜索password内容时发现密码使用了MD5加密手段进行保护,其中MD5就是一种加密算法。
破解密码是很困难的,以一个凯撒密码为例,它的原理是将明文字符按字母表的顺序顺次移位,以abc为例,假如顺次移动3位那加密后的密文就是"def"(此时我们把顺次移动的“3”称之为密钥),由于真实破解密码时我们不可能知道密钥,因此我们需要对每种密钥的情况进行破解,那就需要试26-1=25次,想想每一次都需要对字符串进行移位,假如是比较长的字符串,那纯手算计算量就相当的可观,另外一些安全性很好的加密算法的话,破解需要尝试的次数可能要成百上千次,那手工破解密码肯定是不行的,于是计算机进行破解密码的方法应运而生,以一个每秒可以运算10亿次的计算机来说,对于手工计算需要很长时间的密码,说不定它只要几分钟就可以破解完毕,下面就是利用计算机来破解密码的范例。