首页 > 科技 > 问答 > 科技经验 > Java安全之安全加密算法,不安全加密算法有哪些

Java安全之安全加密算法,不安全加密算法有哪些

来源:整理 时间:2022-04-29 00:52:07 编辑:科技知识 手机版

所以压缩包加密之所以安全,可以认为是公开加密算法和密钥的成功范例。目前zip和rar的主流加密算法是AES。压缩包不验证密码,密码正确会显示内容,密码错误不会显示这样的逻辑。它是如此的安全,以至于目前除了穷举法之外,其他任何方法都无法破解(以后能不能发现这些公开加密算法的漏洞还很难说)。

我只要给zip压缩包设置一个复杂的密码,世界上任何一个黑客都破解不了了吗?

我只要给zip压缩包设置一个复杂的密码,世界上任何一个黑客都破解不了了吗

这个问题很好,在软件破解领域,属于一个非常经典的问题。软件破解在过去很流行,就是一个Windows上面的软件,需要输入注册码、序列号之类的东西。高手往往可以轻松破解出注册码。还有一种叫做黑客,就是说一个网站需要输入密码才能进去,而黑客通过一定手段,可以设法“破解”密码或者绕开正常登录机制。不管密码设置设多复杂,都难厄运。

于是就有人问,我有一个压缩包被加密了,有没有大牛可以破解的?得到的答案基本都是惊人的一致,除了穷举法,再没有其他办法了!不论多高的高手,都没有办法“秒破”。密码太简单除外。但是在软件破解里面,不论注册码算法多么复杂,注册码多长,哪怕是一万个字符,总是可以破解的。甚至出现一种声音,理论上没有不可破解的软件。

这里说的理论上,没有包括穷举。换句话说,理论上都可以“秒破”。现在的问题,就在于,为什么会出现这种情况?为什么软件注册码可以破解,网站登录可以破解,而压缩包这么一个看似简单的东西却破解不了呢(密码太简单除外)?软件注册码保护,属于基于算法的保护。也就是说只要软件敢公开源代码,敢公开注册码生成算法,则分分钟就被破解了。

比方说office软件在安装时就要输入序列号。它的生成算法是不变的,一旦搞到算法,就能马上做一个序列号生成器,不管装在谁的电脑上,都适用,每套office的算法都一样。显然,像office这样的收费软件不可能公开序列号生成算法。但是它要运行,必然在“我”的电脑上运行(而不是服务器),它的内存必然“我”理论上能完全掌握。

只要有耐心,“我”就一定可以反编译、反汇编、再加上内存分析,从而就一定可以找到算法。除非它不在“我”的电脑上正常运行。黑客破解,密码和验证算法在服务器,不在“我”的电脑上,则不像软件破解那样理论上所有都可破解,而是“碰运气”。它主要是找服务器漏洞,运气好就找到了,运气不好找不到。找到了后,就能轻松绕开密码验证,或轻松截获或查询密码。

而压缩包密码的破解,则与上面两种情况有了很大的不同!压缩包的加密,不是基于算法的保密,而是基于密钥的保密。软件破解是基于算法的保密。软件破解是知道算法后,根据算法生产注册码,通过验证注册码判断是否合法用户。那么有了算法,我们就可以自己算出注册码,或者干脆把判断注册码是否合法的逻辑颠倒一下。比如把代码改成,如果注册码错误,就打开主界面正常使用。

而压缩包的算法是公开的,它加密用的基本以AES算法为主,任何人都可以去网上学习。压缩包不是程序,不是代码,不是机器指令。而是实际的加密数据。压缩包不验证密码,没有密码正确就显示内容,密码错误就不显示这样的逻辑。我们输入的密码是用来全文解密的。随便输入一个密码都可以解密,只不过解密出来的东西可能是乱码。

多数压缩包管理软件会提示crc校验失败,这就是说东西已经解密了,但是是错的。正规的提示不会告诉你密码错误,因为压缩包中压根儿就并没有以任何形式存储密码,它无法立刻检测到底什么密码才是正确的。只有你用这个错误密码解密到一半,发现“乱码”后才知道。我们可以这样理解,软件破解中,软件作者一定,百分比,无一例外地可以反查一个软件的注册码。

而压缩包破解中,任何人都无法通过压缩包本身反查密码,包括写压缩包管理软件的作者。刚说过了,压缩包中压根儿就没有关于解密密码的任何信息!刚已经说到,压缩包的加密算法基本是公开的。这里顺便提一下一个思想。有时候,越是公开的东西,越是安全。为什么?因为这样的加密算法经过了无数计算机专家、密码学家、数学家的考验。

算法公开,而密钥(密码)保密,就成了加密解密的最佳实践。多数尝试自己发明一套加密算法的想法都是愚蠢的(密码学专家的专业研究除外)。所以说,压缩包加密之所以安全,可以认为它是加密算法公开,而密钥保密的成功典范。它是如此的安全,目前没有任何人可以通过除穷举法以外的其他任何办法破解(未来是否能找到这些公开加密算法的漏洞不好说)。

======分割线======看到评论很多人关心如果用穷举法,到底需要多长时间。下边我们不妨来算算。内容有点长,看结论就直接看粗体字。不太相信的,想自己算的可以详细看计算过程。目前zip、rar的主流加密算法是AES。AES分3种规格,主流是256位,此外还有192位、128位(位数越高安全性越高)。

128位是指密码的长度是128计算机位,即16字节。大致相当于20几个英文字符。换句话说,AES-128加密,用20几个随机英文字符足够安全了。我们就姑且只讨论128位的。256位的更难破。128位密钥,其可能性总共2^128=3.4×10^38。平均破解次数那就是除以2了,1.7×10^38。现在最厉害的超算之一是天河二号,排名前五,其极限速度是每秒运算6亿亿次。

这个速度是指最简单的运算,那就是整数加法。普通电脑CPU主频4GHz,极限速度就是40亿次运算每秒。如果是8核CPU就乘以8。那么一台天河二号超算大约相当于1百万台普通电脑。概括一下,AES-128加密平均需要穷举1.7×10^38次可以破解。一台天河二号超算极限运算速度一秒6*10^16次。这个运算是指整数加法运算,我们就姑且把复杂的AES解密看作加法这么简单吧。

接下来公式一目了然:1.7×10 ^ 38÷6×10 ^ 16 = 2.8×10 ^ 21秒。那就是90万亿年。不,世界排名前五的天河二号超级计算机平均需要至少90万亿年才能破解一个带有复杂密码的压缩包。你可能会说,找到第一个地方。嗯,第一名不到天河二号的四倍速度。你也可以这样算,同时用1亿个天河二号,也就是把时间从90万亿年换成90万年,还是天文数字。

文章TAG:加密算法Java

最近更新

  • 有的商家发顺丰为什么可以发带电池的电子产品,商家竟然发的顺丰快递

    当时我们有一个食品分类组,里面很多商家,直接是厂家,占了店铺的一半。因为马云要动快递、三通一达的奶酪,无法独立生存。只是他被马云牵着鼻子走,结局肯定不好,最惨的是换成马云自建物流。 ......

    科技经验 日期:2022-06-08

  • 安卓系统为什么臃肿,安卓系统每年都说更流畅

    说实话,安卓这几年在系统流畅的线条上下了不少功夫。安卓不会自动清理后台。有的安卓手机厂商优化不了,或者用的人不知道怎么用好。久而久之,手机开始卡顿。熟悉Android系统开发的R ......

    科技经验 日期:2022-06-08

  • 苹果为什么嚣张,美国如此嚣张从哪儿来的底气

    卖猪肉的梁屠夫,告诉我为什么宇宙不是上帝主宰的。为什么现在科学在发展?反而有人认为宇宙是上帝主宰的。普朗克常数h定义的量子是宇宙中最小的粒子,是宇宙中最基本的变化载体。对宇宙真理的 ......

    科技经验 日期:2022-06-08

  • rx480 为什么没有了,rx480都8g显存了

    想象一下,一个花粉进华为手机专卖店,预算4000元买一部手机。推荐荣耀30Pro还是华为P40?华为和荣耀是同级还是上下级,华为和荣耀是什么关系,兄弟还是父子。买华为意味着产品力比 ......

    科技经验 日期:2022-06-08

  • 太阳为什么温度最高,为什么不会融化

    这也是不对的。如果时间拖得足够长,随着太阳物质核聚变的继续,物质元素融合成铁元素,基本停止反应。重的铁元素会落到太阳表面,或者形成一个固体的太阳球体。随着越来越多的铁落下,对底层的 ......

    科技经验 日期:2022-06-08

  • 流量卡为什么好卡,为什么移动的无限流量这么卡

    无线流量限速问题运营商提出的无线流量卡并不是真正的无限流量。你以为便宜的是垃圾物联网卡。这是惯例。我觉得12流量卡都是正规卡,去过无数坑,所以知道这个月租49块钱很贵,但是100g ......

    科技经验 日期:2022-06-08

  • 为什么火星叫火星,那么金星为什么不叫火星

    他实际上是苏联的二号人物。斯大林死后,他一度有可能成为苏联的领袖,但在他春风得意之时,却被昔日的战友处决了。苏联只用了20多年就赶上了美国。那么,你认为苏联的科技是先进还是落后?我 ......

    科技经验 日期:2022-06-08

  • 为什么摩拜单车变少了,摩拜单车为什么这么难骑

    没办法,穷成这样。买二手的,打折的就行。喜欢苹果手机的人有以下几种可能:全新的6800元左右,二手的4000元左右,没有五官的才2000多点。价格差别还是很大的,所以有些人喜欢便宜 ......

    科技经验 日期:2022-06-08