×

Loading...
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。
Ad by
  • 最优利率和cashback可以申请特批,好信用好收入offer更好。请点链接扫码加微信咨询,Scotiabank -- Nick Zhang 6478812600。

给你举几个简单的例子:

我可以给你举个最简单的hash函数,把字符串所有的ascii码排列后除17取余数, 举个栗子, 100/17=5 余 15, 这个15就是hash值,光给你个15,但是你能推倒出原来的字串是100么?不能。

这个就是经典的取模环群的hash函数, 当然都是用质数来保证proper群且cyclic的特性, 当然不能用来做密码啥的,因为碰撞太简单了。。。一般多用来java class里来做hasHash函数而已。

另外hash不是加密。。。

比特币用的是大质数分解,即 m^e=encrypted, encrypted^d=m, e是质数-1的模倒数,因为质数分解是无法被计算出来的,所以这2个质数是私钥,其积是公钥,当然实现上要复杂的多。比特币是用公钥验证你的矿石不是真的,然后将其连接上他人的区块。

Report

Replies, comments and Discussions:

  • 工作学习 / 学科技术 / sha256 加密算法的疑问
    今天开始研究加密算法,sha256, 同一个密码,每次经过计算得出不同hash值,但这些hash值回过来总是这个密码,如果知道倒推公式就可以得出所有密码。数据库就是采用这个算法保存密码,这些开发人员肯定都知道倒推算法,就是在那个倒推函数里,那开发人员是否都可以根据hash值得出密码呢?同样比特币加密是否也是这样呢
    • 你是开玩笑还是真的。看你这点段,好像还在门外呢。 +4
      • 天哥啥时候给讲讲课,让我入入段
        • 错误1: sha256, 同一个密码,每次经过计算得出不同hash值
          • 我刚从数据库验证的,为什么错呢
            • 给个链接我看看。
              • 明天给你详细测试过程,你不是专家吗
                • 不是专家,只知道一点基本概念。
          • 针对这个almost unique问题,有讨论。
            I have seen numerous references on the internet of people describing SHA-256 as generating an "almost unique" hash. Exhibit A. there are more. Is there some mathematical basis to the almost uniqu...
        • 错误2: 这些hash值回过来总是这个密码,如果知道倒推公式就可以得出所有密码
          • 数据库有两个函数就正反可以测试啊
            • 这里有挺简洁的答案 Can we reverse second sha256 hash?
              Can i reverse sha256 hash like 2nd hash to 1st hash ? ca978112ca1bbdcafac231b39a23dc4da786eff8147c4e72b9807785afee48bb da3811154d59c4267077ddd8bb768fa9b06399c486e1fc00485116b57c9872f5 2nd hash is
        • 错误3: 数据库就是采用这个算法保存密码,这些开发人员肯定都知道倒推算法,就是在那个倒推函数里
        • 结论: 开发人员是否都可以根据hash值得出密码呢? 否。
          • 那个函数谁写的?如何写出不来的
            • 哈希的不可逆性是有数学理论支持的。唯一的破解方法是brute force.
              • 我记得2000几年山东大学还是那里有一个女教授找出了md5的算法,当时算重大突破了
                • 记得,MD5 已经不行了。 +1
        • 这种算法是one way only - 你没发倒退回去==》你只能验证进来的hash code 是否match
      • 门外八万里。 +7
        • 刚研究,门外可以,但门内理解到啥样?
          • 举个例子:你的Sammywang 作为plain text,
            经过算法变成了qdfxuhd123GHJ$ (里面生产一个新的加密隐藏的wangxuaoer再里面)下一次你还用Sammywang经过算法,产生新的13:dhdhhsedu$(里面也生产一个新的加密隐藏的wangxuaoer) 比较match(这个Wangxiaoer), 而没可能由wangxuaoer推出Sammywang
            • 我知道中间好几道弯,但开发者还是知道两个是匹配的,否则无法验证
          • 数论基础课。
    • SHA256是有IV的。IV不同结果就不同。你这理论都还没入门,怎么发财 +1
      • 如果楼主真有算法倒推出来,那就不出声,赶快藏起来,太危险了。多少人想知道啊。
    • 是hash算法,相当提取指纹,
    • Hash是单向的,数学证明的,不可逆的。验证也是只能单向。 +1
      • 明天我给大伙拿出我的测试过程
        • 证明啥?证明你能反向推出密码? 我靠,你要是能推翻哪个数学证明,你能拿诺贝尔了。
          • 民科就是这么不靠谱。 +4
          • 你知道sql server有个password comare 函数不,可以从不同的hash值推出相同的密码来
            • 你是说PWDCOMPARE ( 'clear_text_password' ,password_hash [ , version ] ) ? 这个就是类似 brute force. 你如果不知道clear text password, 那就是玩命试才行。
              • 但这个函数里面的逻辑不是brute force吧,肯定有公式转换,一个clear密码每次都生成不同的hash值,这些hash值都可以和这个clear密码匹配,没有公式怎么能行呢
                • 可能有salt
                  • 这个盐就是随机数,肯定存在于这个hash里面,背后一套固定公式肯定少不了的,也肯定可以解决匹配问题
                • One-Way Hash Function - an overview | ScienceDirect Topics
    • 都是高手,我都不好意思插嘴了
    • 勇气可嘉。顺着正道估计希望比较渺茫,毕竟那些专家也不都是老年痴呆了。旁门左道未必不行
      • 不一定是旁门左道,正规的解密公司都是存在的,我们不一定挑战hash算法,但找回密码可以利用一些人为的回忆而减少无穷尽的brute force,如果缩小范围,可能几天的循环就找回来了
    • 这个也不是加密算法
      • 我不是挑战加密算法,我是了解一下如何运作的
    • 给你举几个简单的例子: +4

      我可以给你举个最简单的hash函数,把字符串所有的ascii码排列后除17取余数, 举个栗子, 100/17=5 余 15, 这个15就是hash值,光给你个15,但是你能推倒出原来的字串是100么?不能。

      这个就是经典的取模环群的hash函数, 当然都是用质数来保证proper群且cyclic的特性, 当然不能用来做密码啥的,因为碰撞太简单了。。。一般多用来java class里来做hasHash函数而已。

      另外hash不是加密。。。

      比特币用的是大质数分解,即 m^e=encrypted, encrypted^d=m, e是质数-1的模倒数,因为质数分解是无法被计算出来的,所以这2个质数是私钥,其积是公钥,当然实现上要复杂的多。比特币是用公钥验证你的矿石不是真的,然后将其连接上他人的区块。

      • 谢谢小郑,不简单啊
        • 额。。。读过计算机本科的应该都知道这些。 +1
    • 以前在国内用的好多软件都是破解的,一直纳闷,Windows 安装的序列号有25位之多,还都是字幕和数字组合的,请问这个破解是怎么算出序列号的?
      • 真的想知道?是软软里面的余则成们透露出来了单项的算法。要破解的可能性太小了
      • 我觉得windows软件安装序列号就是简单验证一下,可能容易比对就破解了,普通黑客就解决了
    • 1. 同样的值多次sha256,结果都是一样的。你在linux用sha256sum试验一下就行。这也是sha256算法的目的之一,当两段文本的sha256值一样,可以认为这两段文本是一样的。2. hash算法没有什么“回过来”之说,hash算法的根本就是要保证一定时间内不可能从hash值推算出原值。 +1
    • hash 不是加密,hash一般要跟原来的信息在一起传送。 +1
      • 是的,hash的目的是integrity,保证原文不被改动,原文不变则hash不变。不存在“同一个密码,每次经过计算得出不同hash值” +1
    • 这个帖子好欢乐…… LZ去哪儿了? +1
      • 我一直在啊,我目前这个疑问还是一样存在,这些编程语言的函数可以知道hash值匹配,那编制函数的程序员肯定知道如何匹配的。
        比如pythan语言里的比特币地址生成函数,从一个固定数永远生成同一个私钥,永远生成同一个公钥和地址,这个过程对大众来说是透明的,但对设计这些函数的程序员肯定需要知道的。
        • 固定数是随机的256位数字,没有人能提前知道。, 你知道算法有什么用呢?
          本文所有源代码均来自Bitcoin Core 0.11 1.比特币的私钥 以下是《精通比特币》一书中关于私钥生成部分的描述: 生成密钥的第一步也是最重要的一步,是要找到足够安...
    • 是的,我们都知道倒推算法,就是最近太忙了,没时间破译BitCoin,等有时间找几千个BitCoin送给楼主玩玩儿。 +2
    • 才看到这么欢乐的帖子,建议楼主补一补基本的密码学。encryption / hashing.
      • 不鼓捣了,投机的东西,对社会无益