热点
模块化思维实战:后端站长从0到1构建高效网站,reasoning_content:我们要求以后端站长的口吻,写一个与“技术、科技”相关,关于[从0到1:运用模块化思维与实战技巧,轻松构建高效网站]的标题需要简短精炼,30字以内直接输出标题,不要加说明nn可以考虑:后端站长视角,强调模块化思维和实战技巧,从0到1构建高效网站可能的从0到1:后端站长教你模块化构建高效网站 但字数可能超?数一下:从0到1:后端站长教你模块化构建高效网站 —— 共18个字符(包括标点)?汉字每个算一个字,冒号、空格?严格来说:从0到1:后端站长教你模块化构建高效网站 共16个字(从0到1:后端站长教你模块化构建高效网站,数一下:从0到1:(3个汉字+1个冒号?不,是从0到1是4个字符,但通常算4个?我们按汉字+符号更好的:去掉一些词nn模块化思维实战:后端站长从0到1建高效站 数一下:模块化思维实战:后端站长从0到1建高效站 —— 共18个?模块化思维实战(6字)冒号(1)后端站长(4)从0到1(4)建高效站(4)总19?有点多nn更简洁:模块化构建高效网站:后端站长的从0到1 共14个字?模块化构建高效网站:后端站长的从0到1 —— 13个汉字+1冒号+1数字?其实从0到1是4个字符可以nn或者:后端站长:模块化思维从0到1打造高效网站 共16字?后端站长:模块化思维从0到1打造高效网站 —— 数:后(1)端(2)站(3)长(4):(5)模(6)块(7)化(8)思(9)维(10)从(11)0(12)到(13)1(14)打(15)造(16)高(17)效(18)网(19)站(20) —— 20字,超了nn要控制在30字以内,所以20字以内都行但最好更精炼nn考虑直接用原话中的从0到1和模块化思维、实战技巧、高效网站但题目要求以后端站长口吻,所以可以加上后端站长nn思路:从0到1:后端站长的模块化实战,高效网站轻松建 数一下:从0到1:后端站长的模块化实战,高效网站轻松建 —— 从0到1(4)冒号(1)后端站长(4)的(1)模块化实战(5)逗号(1)高效网站(4)轻松建(3)总共4+1+4+1+5+1+4+3=23字可以nn更简洁:模块化思维实战:后端站长从0到1建高效站 前面数过19字nn或者:后端站长带你从0到1模块化构建高效网站 15字nn注意:要求与技术、科技相关,但标题本身已经涉及nn我会选择:后端站长:模块化思维从0到1轻松构建高效网站 数:后(1)端(2)站(3)长(4):(5)模(6)块(7)化(8)思(9)维(10)从(11)0(12)到(13)1(14)轻(15)松(16)构(17)建(18)高(19)效(20)网(21)站(22) —— 22字可以nn另一个:从0到1:后端站长模块化实战构建高效网站 22字左右nn为了更口语化:从0到1轻松建站:后端站长教你模块化实战 15字?从0到1轻松建站:后端站长教你模块化实战 —— 共18字?nn我最后决定用:从0到1:模块化+实战,后端站长教你轻松建高效站 数:从0到1:模块化+实战,后端站长教你轻松建高效站 —— 共?从(1)0(2)到(3)1(4):(5)模(6)块(7)化(8)+(9)实(10)战(11),(12)后(13)端(14)站(15)长(16)教(17)你(18)轻(19)松(20)建(21)高(22)效(23)站(24) —— 24字略长去掉教你变成从0到1:模块化+实战,后端站长轻松建高效站 22字nn或者直接:模块化思维实战:后端站长从0到1构建高效网站 18字?数一下:模(1)块(2)化(3)思(4)维(5)实(6)战(7):(8)后(9)端(10)站(11)长(12)从(13)0(14)到(15)1(16)构(17)建(18)高(19)效(20)网(21)站(22) —— 22字还是22nn我认为22字完全在30字以内可以输出这个nn注意:不要加任何说明直接输出标题
15 9 月 2026, 周二

比特币、暴雪和下载盗版电影都应用了同一种算法?

比特币、暴雪和下载盗版电影都应用了同一种算法?

文/脑极体

在ICO泡沫迅速涌起和迅速破灭后,比特币仍然一路高歌,在最近突破了 9600 美金的大关。作为一种独立于货币体系的数字加密币,比特币成功的本质还是要归功于技术——区块链的安全和隐私支撑起了比特币最核心的价值。

提到区块链,非对称加密算法和哈希算法是两个不能避开的技术名词。尤其是哈希算法,在区块链相关的技术文章中总能看到这个名字,却很难真正理解它的奥秘。今天,我们就来看看哈希算法是如何保护比特币和其他数据的?

学好哈希算法,用脑子储存比特币

如果你准备购买比特币,你就会拥有一个“比特币钱包”。通常来讲,比特币钱包会是一个移动/本地客户端,用户可以通过客户端进行交易。但是还有一种更高端的玩法:脑钱包。

我们知道,比特币实际上是一种“资源”,它并不是像文档一样躺在谁的U盘里,而想要确立这种资源的所有权,则需要由用户自己生成一串数字密钥并储存到某个地方。交易时,先生成一套只能由交易中某一方用来解密的私有密钥,再根据私有密钥单向加密生成双方都能看到的共有密钥。

由于密钥的生成是独立于比特币协议和区块链的,所以如何保护好自己的密钥成了一个大问题,以前甚至发生过黑客破解比特币钱包客户端获取比特币的事件。

为了避免这种问题,就有人想出了一个新方法:自己生成一段比特币密钥,然后记在自己脑子里。

生成比特币密钥的方式并不难,最初始的密钥只是一串 256 位的二进制数字,抛二百多次硬币即可得到。但想记住二百多个 0 和 1 实在是太复杂了,脑钱包概念的关键在于,用哈希算法SHA- 256 对密钥进行校验,让 256 位二进制数字变成更短的编码,就可以保证让这串字符适合人脑记忆。

来自国家安全局,怪不得哈希算法很安全!

不管是抛二百次硬币用脑子记忆的脑钱包,还是在移动端、PC端作为客户端的电子钱包,基本都绕不开用SHA- 256 算法校验这一步骤。

其实SHA- 256 算法发明的最初目的和比特币毫无关系, 1993 年,美国国家安全局设计了一套用于安全加密的密码散列函数——Secure Hash Algorithm,翻译过来就是安全散列算法。人们更愿意把它叫做SHA, 1993 年推出的版本名为SHA-0,后来随着算法不断的被破解又不断自我修正,最终推出了数个SHA算法的变体,其中就包括SHA-256。

比特币、暴雪和下载盗版电影都应用了同一种算法?

SHA最主要的特性就是,接收到二进制数字消息时会形成一串“数字摘要”,而这一摘要还可以用来验证数字消息的完整性。如上文所示,SHA- 256 就意味着算法可以把 256 位的二进制数字进行压缩。

很多人会感到疑惑的是,哈希算法对数字进行压缩、摘要,那么为什么不可以根据这些摘要反向“破解”呢?

哈希算法与其说是“加密”,其实更接近于“压缩”。这其中涉及到一个“映射”的概念。所谓映射,我们可以理解为“代表”。举个例子,可以用ABC这样的字符去代表 10001101 这样的数字,字符A可以代表1、001、 0001 等等,但只得到字符A时,我们无法得知加密前的数字究竟是 1 还是 001 还是 0001 还是……

用更简单的案例解释一下:在比特币交易中,交易双方都能得知的共有密钥是“100”,但只有其中一方知道加密前的私有密钥是2+78+5+5+10。

得到 100 这个共有密钥的人,想要破解私有密钥只能去挨个去排列“1+0+0+0+99”、“1+1+0+0+98”……如果变成 256 位的密钥,几乎是一个不可能完成的任务。而想要验证公有密钥也很简单,既然加密前的私有密钥是2+78+5+5+10,那么99、 98 这些公有密钥就都是错误的。

忘记比特币,下载过盗版电影的你早就认识了哈希算法

所以,目前看来哈希算法的压缩功能最大的用处是在比特币交易加密上?

实际上哈希算法最大的用处还是压缩数据,之所以被用在比特币上,是因为其中包含的大量运算贴合了以“消耗资源来获取比特币”的规则。在其他领域中,哈希算法也能发挥很大作用。

一个比较典型的例子是游戏公司暴雪推出的“One Way Hash”算法。

比特币、暴雪和下载盗版电影都应用了同一种算法?

作为手握魔兽争霸、星际等等数款大型游戏的企业,暴雪和其他企业一样,拥有一个巨大的数据库。而当数据库太大时,从中检索就成了一个巨大的麻烦。

通常情况下在数据库中寻找数据就像在KTV点歌,数据库是曲库,想要找到自己要点的歌,只能把曲库从头到尾翻个遍。但也有一种更简单的方法,那就是建立一种代表关系,把歌曲名字《小星星》简写成XXX,并把这种对应关系储存在数据库中。寻找歌曲时,如果连XXX都找不到,说明曲库中不可能存在《小星星》这首歌。

同理,《小星星》=XXX、《爱我中华》=AWZH,这种文字转化成拼音、拼音取首字母的对应方式在现实应用时可能会涉及到函数、坐标等等数学问题,总之这种对应方式被称作“哈希表”。

但我们在KTV点歌时,搜索XXX得出的结果不光有《小星星》、还有《笑哈哈》,面对这种同一字符串在哈希表上位置相同的问题,暴雪的程序猿们想出了一种绝妙的解决办法——在哈希表中用三个哈希值来校验位置。

也就是说在暴雪KTV的曲库中,《小星星》(xiaoxingxing)的哈希值可以分别是XXX、OGG和III,这时再搜索歌曲,就几乎不会遇到《小星星》和《笑哈哈》同时出现的情况了。

同样的作用也体现在P2P(点对点)传播上。如果是上古时代的互联网用户,可以对emule(电驴)这款下载软件有印象,在eMule上可以从全球所有eMule用户手中接收某一件文件的数据上行和下载。

其原理就是,当你想下载电影《战狼2》时,系统会提取《战狼2》的哈希值,通过对这一哈希值的搜索,可以发现所有拥有《战狼2》的用户,大家一起进行点对点的数据传送,eMule本身也不用建立数据库,只搭建平台就可以了。因为哈希算法的压缩特性,使得“全球搜索”这件事变的低成本并可行。

比特币、暴雪和下载盗版电影都应用了同一种算法?

虽然那个具备共享精神的好时代一去不复返,但即使是今天哈希算法也依然活跃在我们的视野中,即使有很多人声称自己破解了哈希算法,却也没有发生过因为算法被破解而造成损失的情况。

目前来看,哈希算法如果被抛弃,无非是出现以下两种情况:第一,量子计算开始应用,哈希算法和已知的所有密码、加密方式都被强大的计算能力和速度打败。第二,出现了更好用的压缩算法,比如美剧《硅谷》中的魔笛手成真,哈希算法由于不好用而被开发者抛弃。

评估一下以上这两种情况出现的可能性,相信大家就能知道哈希算法还会陪伴我们多久了。

dawei

【声明】:北京站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。

您错过了

模块化思维实战:后端站长从0到1构建高效网站,reasoning_content:我们要求以后端站长的口吻,写一个与“技术、科技”相关,关于[从0到1:运用模块化思维与实战技巧,轻松构建高效网站]的标题需要简短精炼,30字以内直接输出标题,不要加说明nn可以考虑:后端站长视角,强调模块化思维和实战技巧,从0到1构建高效网站可能的从0到1:后端站长教你模块化构建高效网站 但字数可能超?数一下:从0到1:后端站长教你模块化构建高效网站 —— 共18个字符(包括标点)?汉字每个算一个字,冒号、空格?严格来说:从0到1:后端站长教你模块化构建高效网站 共16个字(从0到1:后端站长教你模块化构建高效网站,数一下:从0到1:(3个汉字+1个冒号?不,是从0到1是4个字符,但通常算4个?我们按汉字+符号更好的:去掉一些词nn模块化思维实战:后端站长从0到1建高效站 数一下:模块化思维实战:后端站长从0到1建高效站 —— 共18个?模块化思维实战(6字)冒号(1)后端站长(4)从0到1(4)建高效站(4)总19?有点多nn更简洁:模块化构建高效网站:后端站长的从0到1 共14个字?模块化构建高效网站:后端站长的从0到1 —— 13个汉字+1冒号+1数字?其实从0到1是4个字符可以nn或者:后端站长:模块化思维从0到1打造高效网站 共16字?后端站长:模块化思维从0到1打造高效网站 —— 数:后(1)端(2)站(3)长(4):(5)模(6)块(7)化(8)思(9)维(10)从(11)0(12)到(13)1(14)打(15)造(16)高(17)效(18)网(19)站(20) —— 20字,超了nn要控制在30字以内,所以20字以内都行但最好更精炼nn考虑直接用原话中的从0到1和模块化思维、实战技巧、高效网站但题目要求以后端站长口吻,所以可以加上后端站长nn思路:从0到1:后端站长的模块化实战,高效网站轻松建 数一下:从0到1:后端站长的模块化实战,高效网站轻松建 —— 从0到1(4)冒号(1)后端站长(4)的(1)模块化实战(5)逗号(1)高效网站(4)轻松建(3)总共4+1+4+1+5+1+4+3=23字可以nn更简洁:模块化思维实战:后端站长从0到1建高效站 前面数过19字nn或者:后端站长带你从0到1模块化构建高效网站 15字nn注意:要求与技术、科技相关,但标题本身已经涉及nn我会选择:后端站长:模块化思维从0到1轻松构建高效网站 数:后(1)端(2)站(3)长(4):(5)模(6)块(7)化(8)思(9)维(10)从(11)0(12)到(13)1(14)轻(15)松(16)构(17)建(18)高(19)效(20)网(21)站(22) —— 22字可以nn另一个:从0到1:后端站长模块化实战构建高效网站 22字左右nn为了更口语化:从0到1轻松建站:后端站长教你模块化实战 15字?从0到1轻松建站:后端站长教你模块化实战 —— 共18字?nn我最后决定用:从0到1:模块化+实战,后端站长教你轻松建高效站 数:从0到1:模块化+实战,后端站长教你轻松建高效站 —— 共?从(1)0(2)到(3)1(4):(5)模(6)块(7)化(8)+(9)实(10)战(11),(12)后(13)端(14)站(15)长(16)教(17)你(18)轻(19)松(20)建(21)高(22)效(23)站(24) —— 24字略长去掉教你变成从0到1:模块化+实战,后端站长轻松建高效站 22字nn或者直接:模块化思维实战:后端站长从0到1构建高效网站 18字?数一下:模(1)块(2)化(3)思(4)维(5)实(6)战(7):(8)后(9)端(10)站(11)长(12)从(13)0(14)到(15)1(16)构(17)建(18)高(19)效(20)网(21)站(22) —— 22字还是22nn我认为22字完全在30字以内可以输出这个nn注意:不要加任何说明直接输出标题