浅谈用户密码保护与相关技术

浅谈用户密码保护与相关技术(上)

一、  全文涉及

上篇:哈希,彩虹表

下篇:加盐加密,慢哈希,非对称加密与HTTPS

 

二、  主题引入

2011年12月21日,CSDN后台数据库被黑客恶意发布到互联网上并提供下载,此数据库中包含了642万多个用户的帐号、密码等信息,严重威胁了相关用户的信息安全。此次事件之后,人人网、猫扑、嘟嘟牛、178游戏网等多家网站的部分用户数据库也纷纷被传到网上并提供下载,甚至有媒体曝光国内十几家大型门户级网站的数据库也已经被黑客“拖库”,因此将2011年末的密码危机推向了高潮。

令人啼笑皆非的是,csdn作为号称最大的中文在线同性程序员交友网站,主要用户均为技术人员,而其后台用户信息数据库竟然全部使用明文记录——这是一种非常低级的行为。或许单纯的csdn账号泄露不足以引起用户损失,然而很多用户通常习惯于多个账号使用相同的口令密码。一旦黑客掌握了用户的社交网络账号乃至银行卡账号等重要账号,用户的隐私及人身财产安全均有可能受到巨大威胁。

       用户信息数据库加密保护的重要性如斯,本文将就相关技术进行探讨。

 

三、  正文部分

(一) 哈希

哈希函数又名散列函数,是一种不可逆的信息摘要函数

f(x)=y

“不可逆”即无法通过算法由函数值得到输入值;“信息摘要”是指由输入值的某些特征信息值得到最后结果,不同输入值得到的结果不同。尽管设计的目的是好的,但是由于输入内容的无限性,而输出值的有限性,总会出现两个不同的输入值出现相同的输出结果。

注意一点:用于密码加密的这一类哈希函数是所谓的“加密哈希函数”(cryptographic hash),它们是哈希函数的一个子集,对于安全性的要求比起数据结构中用于分配哈希桶的哈希函数要高出很多。下文中所述的“哈希函数”均指“加密哈希函数”。

一个好的哈希算法,对于不同的输入值,理应给出很难重复的哈希值。一旦发生这种情况,即出现了所谓的“撞库”。著名的信息摘要算法“MD5”算法近年来愈发受到诟病,其原因除了本身安全性较低外,还有MD5码以16进制记录时仅有的32位长度限制;相比于SHA-256结果足足256位的长度,在电脑的计算力越来越强大的今天,MD5加密已经禁不起黑客们的撞库破解。

       除此之外,执行效率也是衡量哈希算法的一个重要因素。MD5最初受到广泛欢迎就是因其极快的执行速度,对于一段字符串仅需毫秒级别的执行时间。因而现在MD5算法虽然在密码学领域受到排挤,但是仍然被广泛用于文件校验等场景。

 

(二) 哈希在用户信息加密中的应用

哈希因为不可逆的特性,被广泛应用于信息加密领域。

一个记录用户登录信息的数据库,最起码的要求就是对用户密码进行一次加密(然而之前的csdn连这点都没有做到)。当用户输入账号密码时,服务器会再次对密码进行哈希,并将用户名和哈希值与数据库中的记录比对,从而确定用户是否可以获得授权。

这样做的好处是:一旦黑客“拖库”,即窃取了服务器数据库中的数据,他仍然无法获得用户的明文密码——他得到的只有哈希值。而完成登陆的正确途径是输入可以计算得到相应哈希值的明文密码,这样一来黑客就需要找出这样一个值。

 

(三) 常见的哈希破解方法

对于获取了哈希结果的黑客来说,下一步要做的就是得到满足哈希结果的原始口令了。只不过黑客不需要得到与原始值一模一样的密码,他的目标只是“碰撞”而已。由于哈希函数有限对应无限的特点,即总有x1≠x2,却能使hash(x1)=hash(x2)=y。黑客只要能找到与原文密码生成相同结果的一个字符串就能够通过服务器的验证。

而这一过程显然并不简单,在拥有彩虹表之前,可以进行的两种简单的破解方法是暴力破解法与字典破解法。

 

 

1.   暴力破解

虽然我的算法成绩不怎么样,但是这不代表我不知道穷举法是一种糟糕的方法。尽管如此,有时事情就是“

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ABAQUS用户子程序是用于对ABAQUS软件进行定制化开发的工具,可以实现用户自定义的功能和算法用户子程序pdf则是对ABAQUS用户子程序进行详细讲解的文档,可以帮助用户了解和使用用户子程序。 首先,用户子程序是ABAQUS软件的一个重要扩展功能,通过用户子程序,可以使用Fortran或C++等编程语言编写自己的算法和模型,并将其集成到ABAQUS中。用户子程序的开发可以满足用户特定的需求,扩展ABAQUS的功能,实现更复杂的模拟和分析。 用户子程序pdf是ABAQUS官方提供的详细文档,其主要内容包括用户子程序编写的基本概念、开发的流程、编程语言的要求以及具体使用的方法和技巧等。它通常会提供一些示例代码,用于演示如何使用用户子程序实现某些功能。用户可以根据文档的指导,学习和理解用户子程序的使用方法,并将其应用于自己的工程实际中。 用户子程序pdf的作用是帮助用户深入理解和掌握ABAQUS用户子程序的使用方法,可以节省用户的学习和开发成本。通过阅读文档,用户可以了解到用户子程序的原理和特点,学会如何编写、编译和调用用户子程序,并能够在实际使用中解决遇到的问题。用户子程序pdf还提供了一些技巧和注意事项,帮助用户充分发挥用户子程序的功能和性能。 总之,ABAQUS用户子程序pdf是一个重要的学习和参考资料,对于想要使用并扩展ABAQUS功能的用户来说,它是必不可少的。通过学习用户子程序pdf,用户可以掌握用户子程序的开发和使用技巧,为工程实践提供更强大和定制化的功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值