强密码学简介

让我惊讶的一件事是,大多数开发人员 都不熟悉强大的加密技术。 在我的职业生涯中,我已经看到过各种各样的错误,这些错误会导致数据泄漏,可猜测的密码,不幸的泄露甚至更糟。 令人高兴的是,您不必了解算法背后的荒谬复杂的数学,只需知道正确使用它们的规则即可。 在本系列文章的最后,我的目标是消除魔术的神秘感,因此您可以立即开始在代码中使用原语!

但是首先,当我说“强密码学”时,我到底指的是什么?

强密码学或强密码学是应用于密码系统或组件的通用术语,被认为对密码分析具有很高的抵抗力。
http://en.wikipedia.org/wiki/Strong_cryptography

因此,“强密码术”并不是一个您并不陌生的深奥概念:“强密码术”只是一组定义和算法,已由专家秘密政府机构第三方组织进行了审查,发现很难破解。

我反复看到的一件事是,开发人员出于特定目的“发明”了一种加密方案。 事情就是这样,加密技术已有数千年的历史了。 如果您曾经“发明” 自己的方法来“加密”数据,那么您很有可能只是重新发明了几千年前发现的东西。 如果您想避免WEP在无线上犯的错误,Microsoft 在XBox上犯的错误或Sony在PS3上犯的错误,那么本博客系列应该可以帮助您避免尴尬,并在下一次鸡尾酒会上给您留下深刻的印象。

最后,我只想提一下,这实际上是我个人历史悠久的一个非常私人的主题。 我发现加密的第一个需求是在附近玩“间谍”时将笔记传递给我的朋友,并需要保持秘密要塞的位置安全。 不幸的是,当我们的树屋在那个夏天被摧毁时,我的单字母替换密码一定已经被一个神童打断了……阅读了《 阿尔文的秘密密码》之后 ,我们创造了2-3套凯撒轮 ,再也没有失去一个秘密堡垒!

下面,我们将介绍最有用的“强密码”原语之一:哈希函数。 这些小野兽令人惊叹,并具有多种用途!
那么,什么是哈希函数? 您很高兴,让我们引述不减的Wikipedia:

哈希函数是任何定义明确的过程或数学函数,可以将大量(可能大小可变的)数据转换成小的数据,通常是一个单个整数,可以用作数组的索引(参见关联数组)。 哈希函数返回的值称为哈希值,哈希码,哈希和,校验和或简称为哈希。

http://zh.wikipedia.org/wiki/哈希函数

igh,维基百科曾经为普通人提供了很好的用户友好定义,因为事实并非如此,让我给出自己的定义:

散列函数需要一些输入字节,然后计算一个确定该输入字节序列的固定值。 有点像校验和…等等,校验和是一个哈希函数! ÇOOL!
-乔纳森(Jonathan)谈密码学。

(非常糟糕的)哈希函数可能很简单,例如“将所有内容一分为二,直到剩下一位为止,然后四舍五入。” 我们可以使用此函数ƒ(ƒ代表哈希函数的失败),因此ƒ(48)= 6或ƒ(451)= 8。

使用此功能ƒ的一种简单方法是保护网站。 用户创建帐户时,他们选择一个数字作为密码(p)。 在帐户创建过程中,我们计算一个新数字(c =ƒ(p))并将其存储给用户。 在每个用户的数据库中,我们最终得到(c)数字0-9。
为了对照数据库检查提供的密码,我们只需评估(c ==ƒ(s))。
这个散列函数ƒ在现实世界中并不是真正有用,因为我们的键空间只有9种可能性,它的缩放比例惊人,

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值