s32v算力多少
① 如何安全地存储密码
保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错。接下来我希望可以详细的阐述如何恰当的对密码进行hash,以及为什么要这样做。
重要提醒
如果你打算自己写一段代码来进行密码hash,那么赶紧停下吧。这样太容易犯错了。这个提醒适用于每一个人,不要自己写密码的hash算法 !关于保存密码的问题已经有了成熟的方案,那就是使用phpass或者本文提供的源码。
什么是hash
hash("hello") =
hash("hbllo") =
hash("waltz") =
Hash算法是一种单向的函数。它可以把任意数量的数据转换成固定长度的“指纹”,这个过程是不可逆的。而且只要输入发生改变,哪怕只有一个bit,输出的hash值也会有很大不同。这种特性恰好合适用来用来保存密码。因为我们希望使用一种不可逆的算法来加密保存的密码,同时又需要在用户登陆的时候验证密码是否正确。
在一个使用hash的账号系统中,用户注册和认证的大致流程如下:
1, 用户创建自己的账号
2, 用户密码经过hash操作之后存储在数据库中。没有任何明文的密码存储在服务器的硬盘上。
3, 用户登陆的时候,将用户输入的密码进行hash操作后与数据库里保存的密码hash值进行对比。
4, 如果hash值完全一样,则认为用户输入的密码是正确的。否则就认为用户输入了无效的密码。
5, 每次用户尝试登陆的时候就重复步骤3和步骤4。
在步骤4的时候不要告诉用户是账号还是密码错了。只需要显示一个通用的提示,比如账号或密码不正确就可以了。这样可以防止攻击者枚举有效的用户名。
还需要注意的是用来保护密码的hash函数跟数据结构课上见过的hash函数不完全一样。比如实现hash表的hash函数设计的目的是快速,但是不够安全。只有加密hash函数(cryptographic hash functions)可以用来进行密码的hash。这样的函数有SHA256, SHA512, RipeMD, WHIRLPOOL等。
一个常见的观念就是密码经过hash之后存储就安全了。这显然是不正确的。有很多方式可以快速的从hash恢复明文的密码。还记得那些md5破解网站吧,只需要提交一个hash,不到一秒钟就能知道结果。显然,单纯的对密码进行hash还是远远达不到我们的安全需求。下一部分先讨论一下破解密码hash,获取明文常见的手段。
如何破解hash
字典和暴力破解攻击(Dictionary and Brute Force Attacks)
最常见的破解hash手段就是猜测密码。然后对每一个可能的密码进行hash,对比需要破解的hash和猜测的密码hash值,如果两个值一样,那么之前猜测的密码就是正确的密码明文。猜测密码攻击常用的方式就是字典攻击和暴力攻击。
Dictionary Attack
Trying apple : failed
Trying blueberry : failed
Trying justinbeiber : failed
...
Trying letmein : failed
Trying s3cr3t : success!
字典攻击是将常用的密码,单词,短语和其他可能用来做密码的字符串放到一个文件中,然后对文件中的每一个词进行hash,将这些hash与需要破解的密码hash比较。这种方式的成功率取决于密码字典的大小以及字典的是否合适。
Brute Force Attack
Trying aaaa : failed
Trying aaab : failed
Trying aaac : failed
...
Trying acdb : failed
Trying acdc : success!
暴力攻击就是对于给定的密码长度,尝试每一种可能的字符组合。这种方式需要花费大量的计算机时间。但是理论上只要时间足够,最后密码一定能够破解出来。只是如果密码太长,破解花费的时间就会大到无法承受。
目前没有方式可以阻止字典攻击和暴力攻击。只能想办法让它们变的低效。如果你的密码hash系统设计的是安全的,那么破解hash唯一的方式就是进行字典或者暴力攻击了。
查表破解(Lookup Tables)
对于特定的hash类型,如果需要破解大量hash的话,查表是一种非常有效而且快速的方式。它的理念就是预先计算(pre-compute)出密码字典中每一个密码的hash。然后把hash和对应的密码保存在一个表里。一个设计良好的查询表结构,即使存储了数十亿个hash,每秒钟仍然可以查询成百上千个hash。
如果你想感受下查表破解hash的话可以尝试一下在CraskStation上破解下下面的sha256 hash。
反向查表破解(Reverse Lookup Tables)
Searching for hash(apple) in users' hash list... : Matches [alice3, 0bob0, charles8]
Searching for hash(blueberry) in users' hash list... : Matches [usr10101, timmy, john91]
Searching for hash(letmein) in users' hash list... : Matches [wilson10, dragonslayerX, joe1984]
Searching for hash(s3cr3t) in users' hash list... : Matches [bruce19, knuth1337, john87]
Searching for hash(z@29hjja) in users' hash list... : No users used this password
这种方式可以让攻击者不预先计算一个查询表的情况下同时对大量hash进行字典和暴力破解攻击。
首先,攻击者会根据获取到的数据库数据制作一个用户名和对应的hash表。然后将常见的字典密码进行hash之后,跟这个表的hash进行对比,就可以知道用哪些用户使用了这个密码。这种攻击方式很有效果,因为通常情况下很多用户都会有使用相同的密码。
彩虹表 (Rainbow Tables)
彩虹表是一种使用空间换取时间的技术。跟查表破解很相似。只是它牺牲了一些破解时间来达到更小的存储空间的目的。因为彩虹表使用的存储空间更小,所以单位空间就可以存储更多的hash。彩虹表已经能够破解8位长度的任意md5hash。彩虹表具体的原理可以参考http://www.project-rainbowcrack.com/
下一章节我们会讨论一种叫做“盐”(salting)的技术。通过这种技术可以让查表和彩虹表的方式无法破解hash。
加盐(Adding Salt)
hash("hello") =
hash("hello" + "QxLUF1bgIAdeQX") =
hash("hello" + "bv5PehSMfV11Cd") =
hash("hello" + "YYLmfY6IehjZMQ") =
查表和彩虹表的方式之所以有效是因为每一个密码的都是通过同样的方式来进行hash的。如果两个用户使用了同样的密码,那么一定他们的密码hash也一定相同。我们可以通过让每一个hash随机化,同一个密码hash两次,得到的不同的hash来避免这种攻击。
具体的操作就是给密码加一个随即的前缀或者后缀,然后再进行hash。这个随即的后缀或者前缀成为“盐”。正如上面给出的例子一样,通过加盐,相同的密码每次hash都是完全不一样的字符串了。检查用户输入的密码是否正确的时候,我们也还需要这个盐,所以盐一般都是跟hash一起保存在数据库里,或者作为hash字符串的一部分。
盐不需要保密,只要盐是随机的话,查表,彩虹表都会失效。因为攻击者无法事先知道盐是什么,也就没有办法预先计算出查询表和彩虹表。如果每个用户都是使用了不同的盐,那么反向查表攻击也没法成功。
下一节,我们会介绍一些盐的常见的错误实现。
错误的方式:短的盐和盐的复用
最常见的错误实现就是一个盐在多个hash中使用或者使用的盐很短。
盐的复用(Salt Reuse)
不管是将盐硬编码在程序里还是随机一次生成的,在每一个密码hash里使用相同的盐会使这种防御方法失效。因为相同的密码hash两次得到的结果还是相同的。攻击者就可以使用反向查表的方式进行字典和暴力攻击。只要在对字典中每一个密码进行hash之前加上这个固定的盐就可以了。如果是流行的程序的使用了硬编码的盐,那么也可能出现针对这种程序的这个盐的查询表和彩虹表,从而实现快速破解hash。
用户每次创建或者修改密码一定要使用一个新的随机的盐
短的盐
如果盐的位数太短的话,攻击者也可以预先制作针对所有可能的盐的查询表。比如,3位ASCII字符的盐,一共有95x95x95 = 857,375种可能性。看起来好像很多。假如每一个盐制作一个1MB的包含常见密码的查询表,857,375个盐才是837GB。现在买个1TB的硬盘都只要几百块而已。
基于同样的理由,千万不要用用户名做为盐。虽然对于每一个用户来说用户名可能是不同的,但是用户名是可预测的,并不是完全随机的。攻击者完全可以用常见的用户名作为盐来制作查询表和彩虹表破解hash。
根据一些经验得出来的规则就是盐的大小要跟hash函数的输出一致。比如,SHA256的输出是256bits(32bytes),盐的长度也应该是32个字节的随机数据。
错误的方式:双重hash和古怪的hash函数
这一节讨论另外一个常见的hash密码的误解:古怪的hash算法组合。人们可能解决的将不同的hash函数组合在一起用可以让数据更安全。但实际上,这种方式带来的效果很微小。反而可能带来一些互通性的问题,甚至有时候会让hash更加的不安全。本文一开始就提到过,永远不要尝试自己写hash算法,要使用专家们设计的标准算法。有些人会觉得通过使用多个hash函数可以降低计算hash的速度,从而增加破解的难度。通过减慢hash计算速度来防御攻击有更好的方法,这个下文会详细介绍。
下面是一些网上找到的古怪的hash函数组合的样例。
md5(sha1(password))
md5(md5(salt) + md5(password))
sha1(sha1(password))
sha1(str_rot13(password + salt))
md5(sha1(md5(md5(password) + sha1(password)) + md5(password)))
不要使用他们!
注意:这部分的内容其实是存在争议的!我收到过大量邮件说组合hash函数是有意义的。因为如果攻击者不知道我们用了哪个函数,就不可能事先计算出彩虹表,并且组合hash函数需要更多的计算时间。
攻击者如果不知道hash算法的话自然是无法破解hash的。但是考虑到Kerckhoffs’s principle,攻击者通常都是能够接触到源码的(尤其是免费软件和开源软件)。通过一些目标系统的密码–hash对应关系来逆向出算法也不是非常困难。
如果你想使用一个标准的”古怪”的hash函数,比如HMAC,是可以的。但是如果你的目的是想减慢hash的计算速度,那么可以读一下后面讨论的慢速hash函数部分。基于上面讨论的因素,最好的做法是使用标准的经过严格测试的hash算法。
hash碰撞(Hash Collisions)
因为hash函数是将任意数量的数据映射成一个固定长度的字符串,所以一定存在不同的输入经过hash之后变成相同的字符串的情况。加密hash函数(Cryptographic hash function)在设计的时候希望使这种碰撞攻击实现起来成本难以置信的高。但时不时的就有密码学家发现快速实现hash碰撞的方法。最近的一个例子就是MD5,它的碰撞攻击已经实现了。
碰撞攻击是找到另外一个跟原密码不一样,但是具有相同hash的字符串。但是,即使在相对弱的hash算法,比如MD5,要实现碰撞攻击也需要大量的算力(computing power),所以在实际使用中偶然出现hash碰撞的情况几乎不太可能。一个使用加盐MD5的密码hash在实际使用中跟使用其他算法比如SHA256一样安全。不过如果可以的话,使用更安全的hash函数,比如SHA256, SHA512, RipeMD, WHIRLPOOL等是更好的选择。
正确的方式:如何恰当的进行hash
这部分会详细讨论如何恰当的进行密码hash。第一个章节是最基础的,这章节的内容是必须的。后面一个章节是阐述如何继续增强安全性,让hash破解变得异常困难。
基础:使用加盐hash
我们已经知道恶意黑客可以通过查表和彩虹表的方式快速的获得hash对应的明文密码,我们也知道了通过使用随机的盐可以解决这个问题。但是我们怎么生成盐,怎么在hash的过程中使用盐呢?
盐要使用密码学上可靠安全的伪随机数生成器(Cryptographically Secure Pseudo-Random Number Generator (CSPRNG))来产生。CSPRNG跟普通的伪随机数生成器比如C语言中的rand(),有很大不同。正如它的名字说明的那样,CSPRNG提供一个高标准的随机数,是完全无法预测的。我们不希望我们的盐能够被预测到,所以一定要使用CSPRNG。
② 如何安全的存储密码
大多数的web开发者都会遇到设计用户账号系统的需求。账号系统最重要的一个方面就是如何保护用户的密码。一些大公司的用户数据库泄露事件也时有发生,所以我们必须采取一些措施来保护用户的密码,即使网站被攻破的情况下也不会造成较大的危害。如果你还在存储用户密码的MD5,那可真的有点弱了。赶紧来看看这篇文章吧。
保护密码最好的的方式就是使用带盐的密码hash(salted password hashing).对密码进行hash操作是一件很简单的事情,但是很多人都犯了错。接下来我希望可以详细的阐述如何恰当的对密码进行hash,以及为什么要这样做。
③ 双路服务器功耗
知乎
下载 APP
8375C单路待机功耗与满载功耗大约是多少?双路的两个功耗为多少?
想了解下单路与双路待机功耗与满载功耗分别是多少,算一下电费成本,想自己搞台服务器,使用多虚拟机组集群分析数据.
谢谢各位的解惑
关注问题写回答
2 个回答
晨风
u桌面待机25-30w 满载300w
内存条一条5w 不存在待机
ssd一个5-10w
电源待机5-10w左右
自己算吧
编辑于 2022-11-01 · 著作权归作者所有
赞同 0
评论
更多回答
恪立
戴尔、超微及定制服务器加V:13622003977
待机功耗比较小,满载功耗300W,现在这个处理器价格很高,不适合入手了,单路电源850W够用,考虑到扩展性,1000W可以。
编辑于 2022-11-03 · 著作权归作者所有
赞同 0
评论
展开全部
相关推荐
心理咨询师二三问
很多人都觉得心理咨询行业离我们很遥远,是个可望不可及的职业。总是收到这样的问题:心理咨询师的就业前景怎样?心理咨询师是干什么的?心理咨询师真有那么赚钱吗?(ps:第六问是重中之重)01目前中国有多少心理咨询师?全国大约有14亿人左右,按照国际卫生组织的说法:每千人拥有一个心理咨询师是“健康社会的平衡点”。这样看来,全国大约需要一百三十多万心理咨询师。但是实际上从业的咨询师只有十五万不到。心理咨询师...
锐学说心理的回答
3年重度失眠患者,我是如何走出来的,并永久摆脱失眠的?
失眠3年,能想到的方法都试了,最后是靠着一瓶酸枣仁膏调整过来的,从头到尾喝了一个月,再没有失眠过。本人不是专业医生,但失眠3年可以说是久病成医,我只是分享一下个人解决失眠的方法和经验,不确定是否对你有效,但希望这篇文章可以跟深受失眠困扰的人一点希望!直接说我的方法,喝酸枣仁膏一个月,失眠能好80%效果没夸张,我也没说假话,每天睡前半个小时喝一杯酸枣仁膏,这个方法我坚持了一个月,失眠彻底好了。我这个...
张艺兴的正牌老婆的回答
日本有哪些比较好的语言学校?在语言学校就读是一种怎样的体验?
同学你好,我是启德教育负责亚洲的纪老师通常我们要评判一个语言学校的好坏,主要是看这个学校是不是日本语教育振兴协会和出入国管理局认定的“适正校”,即非法滞留率、取消在留资格率、强制遣返率等5个指标均为0的语言学校。实际上,“适正校”也就是日本留学生们通常所说的“优良校”。出入国管理局每次都会进行严格的评判和筛选,只有极少数学校可以获此殊荣。如:京进教育集团、早稻田文化和码馆、国书日本语学校、滋庆东洋言语...
启德教育的回答
德国研究生怎么申请?
由于德国的教育体制、大学的专业设置等原因,德国研究生的申请流程及要求,跟其他国家还是有比较大的差异。这些差异总结起来,主要体现在两方面,启德教育武汉分公司的留学规划师肖光泽老师为大家做了以下总结:1、德国大学研究生专业,对申请者本科专业的匹配度要求很高,必须选择相同或者相关专业来申请。德国硕士申请基本是针对大四在读生或已经毕业的学生,以及部分硕士在读的学生,可申请本科专业相关的硕士专业,若申请跨领...
启德留学咨询的回答
有哪些不知名但是很棒的茶叶?如何购买?
晴天宝宝的回答
2022年电子阅读器深度测评指南,汉王,讯飞,文石,掌阅都有什么区别?
桔了个仔的回答
有哪些适合30岁左右的人的高性价比护肤品?
2月份过的生日,感觉三十岁的自己,有了点钱,但也没那么有钱;皮肤开始衰老,但也没那么老!总得来说就是:得买点贵妇级护肤品,但也得考虑性价比!从上大学开始,这么多年“买来试试”的护肤品真用了不少,信得过用得好的好牌子也就那么几个,今天给大家推荐一个我会无限无限回购的贵妇品牌!就是这个whoo后系列,我真是自从发现这个品牌后,花了两年改咐时间把他的全线产核棚纯品都试用了一遍。它不是那种用上立马见效的产品,而是会...
不月光的樊胜美的回答
(二)两次国考申论76+给大家分享一下申论高分答案和解题心得
林宇原创 侵权必究!!!申论辅导咨询请加微信 linyugongkao先简单说一下,本系列文章解析“两次国考申论76+给大家分享一下申论高分答案和解题心得(系列一至九)”,为2017年1月18日开始发表在QZZN公务员考试论坛申论版块!两年半时间即成为QZZN论坛申论第一热门文章,阅读量达到史无前例的110万+!!!备注:在QZZN论坛申论版块,热门帖排序,阅读浏览量为1110584次(截止201...
林宇申论的回答
大家还在搜
电脑cpu排名
显卡性能天梯图
处理器天梯排行榜
处理器天梯图
intel core i5
2022显卡功耗天梯图
十大低功耗显卡排行榜
怎么看显卡多少瓦
显卡功耗天梯图
i5-12400详细参数
电脑功耗在线估算
显卡功率对照表
cpu性能表
i5 6500性能怎么样
显卡耗电量天梯图
显卡能耗比天梯图
intel低功耗cpu排行
2022低功耗cpu排行
显卡功耗表
低功耗cpu天梯图2022
功耗150w以内的显卡排行
各显卡算力对照表
显卡功耗排行
低功耗显卡天梯图
相关推荐
为手机充电功率达到近50W,紫米65W氮化镓充电器性能评测_知乎
现如今,各大品牌都在做生态,产品种类也越来越多,大家手里的电子设备也越来越多.不过不得不说的是,虽然现在TWS... 长时间满载比较稳定.3、待机功耗经过功率计测试,ZMI紫米65W氮化镓充电器(1C1A)在220V 50Hz的空载功耗为0.058...
《I7-8700K简测》_知乎
前言本文重点是对它的超频能力、在不同应用下的功耗及频率范围进行了简测一、测试平台CPU:I7-8700K散热:超频三东... 超频后提升:15.8%五、HWiNFO64CPU睿频最大为4.7,电压0.65V左右,待机功耗12.5W左右Fritz单线程测试,CPU一个核...
3090需要多大功率的电源?_知乎
700W的话有可能也是满载状态,如果CPU或者显卡产生较高的瞬时功耗,就会导致硬件烧毁或者触发过载保护. 建议你根据自己的配置妥善选择,在最终测得的结果再加上50——100最佳,750W我认为品质一线...
【茶茶】牙膏撕裂者?AMD TR4 1950X解禁测试报告_知乎
1950X往下会有至少两个型号,1920X(12核24线程)和1900X(8核16线程). 这次用于对比的分别是I9 7900X、I7 6950X、I7 7700K、R7 1800X.分别取自双方发烧...
更小更能打,颜值与性能并存,征拓S3 Pro 65W氮化镓充电器评测_知乎
Zenre征拓是一家有着独立设计美学且专注于研发超大功率充电配件的数码配件品牌,产品将极客精神和大众需求完美的... 四、其他性能测试1、待机功耗顾名思义,就是充电器在不使用时插在插座上耗电的多少,下面是具体的测试结果.经过功率...
相关搜索
显卡耗电量天梯图
显卡能耗比天梯图
intel低功耗cpu排行
2022低功耗cpu排行
显卡功耗表
低功耗cpu天梯图2022
功耗150w以内的显卡排行
各显卡算力对照表