• 关于 md5加密 的搜索结果

回答

重新加密一个md5串 更新一下不就行了###### 你要是能改MD5串,那直接重新算一个,然后数据库修改就是。或者找撞算法的网站,MD5反向看看能否找到对应的原文。###### 写个Test,生成一个密码######md5不可逆,真要知道自己原来的密码的话,只能把可能的密码都试一遍吧###### 直接改掉密码或去查MD5撞库数据,即用密文查明文,网上已有这类的网站存储了大量的MD5加密样本。###### 钥匙丢了..那就换锁呀. 直接把数据库里存储的md5改了######简单,常见的密码是可以撞库的######既然密码是md5加密。自己直接md5字符串换掉就行了。###### 既然系统有加密的功能  那登录的时候肯定也是从数据库取出来加密字符串解密然后验证密码正确性的  可以写个test把加密字符串传进去用解密算法解密######登陆是,验证密码,是将输入的字符串加密然后与库中的加密串进行比较。所以,很头疼╭(╯^╰)╮###### 私聊我,我这边买了用彩虹表暴力po'jieMD5的东西

kun坤 2020-06-06 14:06:22 0 浏览量 回答数 0

问题

Java使用MD5加密,生成的密文长度只有31位

蛮大人123 2019-12-01 20:17:49 2660 浏览量 回答数 1

回答

MD5加密也称消息摘要算法,是通过不可逆散列函数实现。用在密码上,主要为了防止数据库泄露,通过md5加密后,即使密码泄漏也无法还原原始密码。但是,目前网上有大量站点提供md5破解服务,主要利用彩虹表(大型密文-明文映射数据库),所以千万不要用自己的密码在网上加密(加密后会存储至彩虹表)。同时网站开发人员应该采用其他手段,如加盐(在原密码后加入复杂随机的数字,在进行md5)处理,能有效对抗md5破解

niccolo 2019-12-02 01:51:26 0 浏览量 回答数 0

新用户福利专场,云服务器ECS低至96.9元/年

新用户福利专场,云服务器ECS低至96.9元/年

回答

MD5你怎么解? ######回复 @cyzshenzhen : 你想得太天真了, 32位是md5可以理解, 但你理解不了的是它是几层md5.######google、百度,MD5解密。虽然不是真正的解密,但实际上也是一个非常完整的库,如果可以的话,直接引用他们的库就够了###### 怎么能一样呢,你去看看腾讯微博的登录吧,是MD5加密,关键是salt是在服务器端生成的,每次都不一样。要破解,难度很大。 等你破解好,早就失效了。 ######回复 @cyzshenzhen : 但是salt是动态获取的,而且有有效期######不是在js端加密的吗?######MD5加密后,就目前技术来说还是不能够解密的。网上所谓的能够MD5解密,不过是搜集了一些MD5的散列存储于数据库中,根据MD5散列来寻找字符串以寻找解密,如果数据库中没有搜集有相应的散列就不能够解密了。但是这个库肯定不是你说的一个非常完整的库。######回复 @彭坤 : 不是破解,而是碰撞######回复 @leo108 : MD5是单向的,能破解?反正目前所知的所谓的破解都是穷举出来的,比谁的库大而已。######回复 @szkiti : 百度王小云######回复 @leo108 : 已经有解? 是MD5已经被破解了吗? 哪来的内部消息啊? 表示好奇。######已经有解了,只不过没公开而已###### 明文就肯定不是安全的。MD5有什么用?你都截获md5后的字符串了,根本不用关心密码原文是什么,直接post这个字符串就可以进行欺骗了。 ######js加密之前先跟服务器要一个salt,然后js端用这个salt加密,sever端从数据库拿出password后也用同一个salt加密,这个salt用一次就在server端被失效,就算这次请求被截断,造成这个salt没在server端被强制失效,它还有一个有效期,可以过期自动失效。也就是说,同样的密码,每次发出去的MD5串是不一样的,所以你截获这次的MD5串,用于下一次登录是无效的。######大哥,你知道加密后的字符串有什么用? 进行密码认证的时候,是将传递的字符串进行加密然后,再跟数据库或ldap中存储的加密值进行比对。 你传递的是加密后的字符串,然后经过人家验证前的再加密,值就不一样了。。。。。。######回复 @leo108 : 恩恩,我以为你说的是拿到密码和数据库直接比对。接楼上的话,没有https保护的都是在裸奔!:)######回复 @hanzhankang : 呵呵,看8楼你就知道天真的是你######回复 @littledoo : 在前段的md5仅仅是第一次,在服务器端还会进行的,而且还会加盐。说服了没?###### 引用来自“littledoo”的答案 明文就肯定不是安全的。MD5有什么用?你都截获md5后的字符串了,根本不用关心密码原文是什么,直接post这个字符串就可以进行欺骗了。 关键是你怎么截获,你能截获到我和我QQ上的谁在聊什么吗?跨网段截获可不是那么容易的 ######回复 @leo108 : 客户端MD5还能一定程度加大你机器人模拟登陆的难度,从多个方面制造困难######既然排除了局域网截获,那明文提交和md5之后再提交已经没有区别了######回复 @littledoo : 局域网内截包谁不会,你来截下我的包试试,你要是能截到,你就牛了。 另外,QQ消息是加密的,而且是XXTEA 加密算法。######截包不是什么很大工程。qq消息是加过密的。不是明文,补习下网络知识吧。######不使用ssl的登录都是在裸奔。######楼主分清楚MD5是 散列算法不是加密算法###### 根据4楼说的,拿到JS进行MD5加密的串。我们直接利用账号+加密后的密码,直接提交的话,不管服务端到底加了多少“盐”,应该都没用吧? 这个过程哪里有问题吗? ######当然有问题. 服务端会发个salt给浏览器做js进行md5加密,这个salt是变动的2分钟有效, 你下次直接提交这个md5串是没有用的.######不是简单做一个MD5,我在这篇文章里详细展开了,推荐阅读:http://my.oschina.net/u/588200/blog/151377######那不就可以直接“做事”了吗。 假设有人能够截获到提交的信息。那我拿到的这个MD5加密的串,跟拿到明文的串,有什么区别######没有一点问题!######只是知道加密方式而已,跟明文还差的比较多的。而现在一般的网站大多数都采用MD5加密,有些甚至二层加密,纯粹知道加密方式,对破解意义不大。###### md5(md5(pass,time()),time()); 返回值是32位, 可你要拿这上数据库找, 估计得上4TB, 数学次方, 思考一下吧, 少年. 直接拿md5值传输过去? 醒醒吧, ip, 来路,session表示你还是少年. ######回复 @cyzshenzhen : 你讲这些都是在你已知的条件下, 比如QQ的聊天记录, QQ会提示你数据不是在一个ip下提交的? 你太天真了, QQ不会提示你任何信息, 你慢慢去猜想吧.######ip这个,顶多会提示“登录不在常用地址”而已。提交方式,上网搜一下,都是模拟xxx浏览器提交

kun坤 2020-06-08 11:24:51 0 浏览量 回答数 0

问题

java aes加密解密如何用php实现

泡儿 2019-12-01 19:55:36 2624 浏览量 回答数 1

问题

密码md5加密问题

蛮大人123 2019-12-01 19:59:33 1048 浏览量 回答数 2

回答

看不懂+1。 另外,对于后台来说,只要传入的“密码”在按规则 Hash 后与数据库中的一致就算登录通过。从这个角度说,这个密码是否经过前端加密(或者说混淆)后台其实根本不关心。前端加密的过程对后端而言是完全透明的。 ######这是混淆后的js....这么看看不出来啥...######简单一点md5( 密码+验证码),这样加密就可以了######有谁知道######上面长的代码,是功能方法,下面的是调用######MD5... ###### 1加密后是:ToFVI  这到底是什么加密? ######搜搜var n = 1732584193 整个常量  1732584193 会有发现哟,看起来是md5,也就是说传到后台没有解密(也没法解)估计是和存储的值md5后比较了######回复 @键盘浪人 : 貌似md5只是其中一部分######1加密后是:ToFVI ,md5,不在最短16位,最长32位的吗###### 应该只是MD5散列运算了一下,并不需要后台解密,后台根据同样的规则进行一次散列运算比对结果就行了。这样是为了避免TCP/IP抓包导致密码明文泄露问题。 根据评论仔细看了一下,应该是修改过的BASE64加密,单次加密结果和BASE64很像,只是没有结尾的=,替换成了别的字符,并且递归调用了两次加密。 ######回复 @键盘浪人 : 喔,仔细看了一下,并没有调用MD5的散列,这个方法只调用了一种变形了的BASE64运算,结果跟BASE64很像又好像把结尾的=换成了别的字符,并且运算了两次出现的结果。######1加密后是:ToFVI ,md5,不在最短16位,最长32位的吗###### 应该是改过的base64、、、、 看到“ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/” 就是base64的预兆。

kun坤 2020-06-06 00:29:45 0 浏览量 回答数 0

回答

看代码了。不要太高估码农的智商了。比如如果是PHP开源软件,基本都是MD5揉来揉去,如果是.NET开源软件,基本都是DES揉来揉去。 99%的加密就是base64,md5,rc4,des3等揉来揉去,其中90%的加密是MD5散列做的,就是加一点切一点。 ######回复 @blu10ph : 你说的没错。但是,绝大部分开源软件的作者水平没这么高,尤其是业务软件,就是我说的拿几个最简单最常见的揉来揉去,加点盐,掐头去尾什么的。你以为他们懂什么椭圆双曲线加密,什么SHA3最新一代散列?######加密还分可逆和不可逆,对称不对称######老大果然是老大,”揉“用得非常之精妙。###### md5 ###### 你没有把明文贴出来,谁能猜得到? ######根据你的要求,提供了4对明文密文,呵呵######一定不是MD5###### 你这个密文长度都不固定,怎么确定呀。反正肯定不是MD5,好像也不是DES。或者有两种加密算法。因为第四段密文长度和其他不一样。 ######长度问题,你可能想复杂了######呵呵,楼主就少换了个行,你们就以为有一行长度不一致?看上去离MD5不远,至少最后一步是MD5的16位加密。######那一行长的 确实就是那么长啊###### md5 ######呵呵,说的对哦 我补充了几组明文密文组 能帮我看看算法吗?######回复 @婕仪伟琪 : 这个网站确实能通过密文反查到MD5等加密数据。我用过几次。你可以去看看.www.cmd5.com。并且从这个网站你可以看到,光摘要算法,就有十几二十种,更不用说对称,非对称算法了。而且,比如对称算法,只要明文不同,即使密钥相同,算出来的密文也完全不同。加密解密有三要素(明文,密钥,算法),才能算出密文,你只给出一串无意义的密文,神仙也推不出算法或者明文来。######MD5###### ######所以你不给出一条明文或密钥,根本不能判断是什么算法加密出来的。######在原问题上补充了4对明文密文,呵呵

kun坤 2020-06-03 14:04:23 0 浏览量 回答数 0

问题

关于iOS MD5加密 32位小写 OC代码

爵霸 2019-12-01 20:22:45 1078 浏览量 回答数 1

回答

uc_client\control\user.php 里的onlogin() 这里把MD5那乱七八糟的东西去掉就可以了###### discuz有ucenter.做桥接比较方便.. 要看oa是什么加密方式了..如果和dz都是md5(我也不知道dz是不是md5)..直接对比就好了 ######密码加密一般都是md5 直接比较就好了

一枚小鲜肉帅哥 2020-05-31 21:30:19 0 浏览量 回答数 0

问题

DeleteMultipleObjects中ContentMD5字段内容怎么计算

一折 2019-12-01 21:25:28 19509 浏览量 回答数 10

回答

Re批量删除返回SignatureDoesNotMatch std::string char_md5(char* data,size_t len)        {                MD5_CTX md5;                unsigned char md[16];                string hash="";                MD5_Init(&md5);                if (len > 0) {                        MD5_Update(&md5,data, len);                }                MD5_Final(md,&md5);                hash=weblib::base64Encode(md,16);                return hash;        } 这是我的算法,用到openssl的函数,base64Encode 是自己的函数,将字符数组进行加密 是这样的 先得到一个16字节的md5数组,不要转成字符串,1个字节就是一个十六进制数,32位的md5字符串就是这16个十六进制数转来的。 这里先不要转,直接对这个十六进制数的数组进行base64加密就好了。 其他的语言也类似,总之最后base64加密的 一定是16个十六进制数字的数组。而不是转成字符的32位字符串

qhgongzi 2019-12-01 23:44:26 0 浏览量 回答数 0

回答

1、前端js代码是全裸的,所以就算有加密代码也是可读的;如果兼容无法运行js的浏览器,还需要写用密码原文登陆的接口2、前端就算加密,对于用户来说依旧是可以拿到MD5加密的原文,如果后端不做安全处理(MD5+hash)直接写入数据库,那么用户知道MD5加密原文,也是可以登录进来的;总结前端针对原文的加密是流氓行为,针对传输的安全机制是重点。不能抱有前端加密了,后端就可以不处理的想法;后端的安全机制才是保障。所以上https才是正途,可以去看看ssl/tls协议(其实就是https)。深入了解一下https,现阶段https的成本降低了,落地的也多了。顺便安利http 2.0协议。更具体的答案可以看这个:http://www.techug.com/https-ssl-tlshttp://www.ruanyifeng.com/blog/2014/02/ssl_tls.html

蛮大人123 2019-12-02 02:05:06 0 浏览量 回答数 0

问题

js怎么使用md5加密

云计算小粉 2019-12-01 19:48:38 383 浏览量 回答数 1

回答

您好, <一>. MD5加密算法: ? ? ? ?消息摘要算法第五版(Message Digest Algorithm),是一种单向加密算法,只能加密、无法解密。然而MD5加密算法已经被中国山东大学王小云教授成功破译,但是在安全性要求不高的场景下,MD5加密算法仍然具有应用价值。 ?1. 创建md5对象:? <pre name="code" class="java">MessageDigest md5 = MessageDigest.getInstance("md5"); ?2. ?进行加密操作:? byte[] cipherData = md5.digest(plainText.getBytes()); ?3. ?将其中的每个字节转成十六进制字符串:byte类型的数据最高位是符号位,通过和0xff进行与操作,转换为int类型的正整数。? String toHexStr = Integer.toHexString(cipher & 0xff); ?4. 如果该正数小于16(长度为1个字符),前面拼接0占位:确保最后生成的是32位字符串。? builder.append(toHexStr.length() == 1 ? "0" + toHexStr : toHexStr); ?5.?加密转换之后的字符串为:c0bb4f54f1d8b14caf6fe1069e5f93ad? ?6. 完整的MD5算法应用如下所示:? /** * 功能简述: 测试MD5单向加密. * @throws Exception */ @Test public void test01() throws Exception { String plainText = "Hello , world !"; MessageDigest md5 = MessageDigest.getInstance("md5"); byte[] cipherData = md5.digest(plainText.getBytes()); StringBuilder builder = new StringBuilder(); for(byte cipher : cipherData) { String toHexStr = Integer.toHexString(cipher & 0xff); builder.append(toHexStr.length() == 1 ? "0" + toHexStr : toHexStr); } System.out.println(builder.toString()); //c0bb4f54f1d8b14caf6fe1069e5f93ad } ?? <二>. 使用BASE64进行加密/解密: ? ? ? ? 使用BASE64算法通常用作对二进制数据进行加密,加密之后的数据不易被肉眼识别。严格来说,经过BASE64加密的数据其实没有安全性可言,因为它的加密解密算法都是公开的,典型的防菜鸟不防程序猿的呀。?经过标准的BASE64算法加密后的数据,?通常包含/、+、=等特殊符号,不适合作为url参数传递,幸运的是Apache的Commons Codec模块提供了对BASE64的进一步封装。? (参见最后一部分的说明) ?1.?使用BASE64加密:? BASE64Encoder encoder = new BASE64Encoder(); String cipherText = encoder.encode(plainText.getBytes()); ? 2.?使用BASE64解密:? BASE64Decoder decoder = new BASE64Decoder(); plainText = new String(decoder.decodeBuffer(cipherText)); ? 3. 完整代码示例:? /** * 功能简述: 使用BASE64进行双向加密/解密. * @throws Exception */ @Test public void test02() throws Exception { BASE64Encoder encoder = new BASE64Encoder(); BASE64Decoder decoder = new BASE64Decoder(); String plainText = "Hello , world !"; String cipherText = encoder.encode(plainText.getBytes()); System.out.println("cipherText : " + cipherText); //cipherText : SGVsbG8gLCB3b3JsZCAh System.out.println("plainText : " + new String(decoder.decodeBuffer(cipherText))); //plainText : Hello , world ! } ?? <三>. 使用DES对称加密/解密: ? ? ? ? ?数据加密标准算法(Data Encryption Standard),和BASE64最明显的区别就是有一个工作密钥,该密钥既用于加密、也用于解密,并且要求密钥是一个长度至少大于8位的字符串。使用DES加密、解密的核心是确保工作密钥的安全性。 ?1.?根据key生成密钥:? DESKeySpec keySpec = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("des"); SecretKey secretKey = keyFactory.generateSecret(keySpec); ? 2.?加密操作:? Cipher cipher = Cipher.getInstance("des"); cipher.init(Cipher.ENCRYPT_MODE, secretKey, new SecureRandom()); byte[] cipherData = cipher.doFinal(plainText.getBytes()); ? 3.?为了便于观察生成的加密数据,使用BASE64再次加密:? String cipherText = new BASE64Encoder().encode(cipherData); ? ? ?生成密文如下:PtRYi3sp7TOR69UrKEIicA==? ? 4.?解密操作:? cipher.init(Cipher.DECRYPT_MODE, secretKey, new SecureRandom()); byte[] plainData = cipher.doFinal(cipherData); String plainText = new String(plainData); ? 5. 完整的代码demo:? /** * 功能简述: 使用DES对称加密/解密. * @throws Exception */ @Test public void test03() throws Exception { String plainText = "Hello , world !"; String key = "12345678"; //要求key至少长度为8个字符 SecureRandom random = new SecureRandom(); DESKeySpec keySpec = new DESKeySpec(key.getBytes()); SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("des"); SecretKey secretKey = keyFactory.generateSecret(keySpec); Cipher cipher = Cipher.getInstance("des"); cipher.init(Cipher.ENCRYPT_MODE, secretKey, random); byte[] cipherData = cipher.doFinal(plainText.getBytes()); System.out.println("cipherText : " + new BASE64Encoder().encode(cipherData)); //PtRYi3sp7TOR69UrKEIicA== cipher.init(Cipher.DECRYPT_MODE, secretKey, random); byte[] plainData = cipher.doFinal(cipherData); System.out.println("plainText : " + new String(plainData)); //Hello , world ! } ?? <四>. 使用RSA非对称加密/解密: ? ? ? ? RSA算法是非对称加密算法的典型代表,既能加密、又能解密。和对称加密算法比如DES的明显区别在于用于加密、解密的密钥是不同的。使用RSA算法,只要密钥足够长(一般要求1024bit),加密的信息是不能被破解的。用户通过https协议访问服务器时,就是使用非对称加密算法进行数据的加密、解密操作的。 ? ? ? ?服务器发送数据给客户端时使用私钥(private key)进行加密,并且使用加密之后的数据和私钥生成数字签名(digital signature)并发送给客户端。客户端接收到服务器发送的数据会使用公钥(public key)对数据来进行解密,并且根据加密数据和公钥验证数字签名的有效性,防止加密数据在传输过程中被第三方进行了修改。 ? ? ? ?客户端发送数据给服务器时使用公钥进行加密,服务器接收到加密数据之后使用私钥进行解密。 ?1.?创建密钥对KeyPair: KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("rsa"); keyPairGenerator.initialize(1024); //密钥长度推荐为1024位. KeyPair keyPair = keyPairGenerator.generateKeyPair(); ? 2.?获取公钥/私钥: PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); ? 3.?服务器数据使用私钥加密: Cipher cipher = Cipher.getInstance("rsa"); cipher.init(Cipher.ENCRYPT_MODE, privateKey, new SecureRandom()); byte[] cipherData = cipher.doFinal(plainText.getBytes()); ? 4.?用户使用公钥解密: cipher.init(Cipher.DECRYPT_MODE, publicKey, new SecureRandom()); byte[] plainData = cipher.doFinal(cipherData); ? 5.?服务器根据私钥和加密数据生成数字签名: Signature signature = Signature.getInstance("MD5withRSA"); signature.initSign(privateKey); signature.update(cipherData); byte[] signData = signature.sign(); ? 6.?用户根据公钥、加密数据验证数据是否被修改过: signature.initVerify(publicKey); signature.update(cipherData); boolean status = signature.verify(signData); ? 7. RSA算法代码demo:<img src="http://www.cxyclub.cn/Upload/Images/2014081321/99A5FC9C0C628374.gif" alt="尴尬" title="尴尬" border="0"> /** * 功能简述: 使用RSA非对称加密/解密. * @throws Exception */ @Test public void test04() throws Exception { String plainText = "Hello , world !"; KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("rsa"); keyPairGenerator.initialize(1024); KeyPair keyPair = keyPairGenerator.generateKeyPair(); PublicKey publicKey = keyPair.getPublic(); PrivateKey privateKey = keyPair.getPrivate(); Cipher cipher = Cipher.getInstance("rsa"); SecureRandom random = new SecureRandom(); cipher.init(Cipher.ENCRYPT_MODE, privateKey, random); byte[] cipherData = cipher.doFinal(plainText.getBytes()); System.out.println("cipherText : " + new BASE64Encoder().encode(cipherData)); //gDsJxZM98U2GzHUtUTyZ/Ir/NXqRWKUJkl6olrLYCZHY3RnlF3olkWPZ35Dwz9BMRqaTL3oPuyVq //sehvHExxj9RyrWpIYnYLBSURB1KVUSLMsd/ONFOD0fnJoGtIk+T/+3yybVL8M+RI+HzbE/jdYa/+ //yQ+vHwHqXhuzZ/N8iNg= cipher.init(Cipher.DECRYPT_MODE, publicKey, random); byte[] plainData = cipher.doFinal(cipherData); System.out.println("plainText : " + new String(plainData)); //Hello , world ! Signature signature = Signature.getInstance("MD5withRSA"); signature.initSign(privateKey); signature.update(cipherData); byte[] signData = signature.sign(); System.out.println("signature : " + new BASE64Encoder().encode(signData)); //ADfoeKQn6eEHgLF8ETMXan3TfFO03R5u+cQEWtAQ2lRblLZw1DpzTlJJt1RXjU451I84v3297LhR //co64p6Sq3kVt84wnRsQw5mucZnY+jRZNdXpcbwh2qsh8287NM2hxWqp4OOCf/+vKKXZ3pbJMNT/4 ///t9ewo+KYCWKOgvu5QQ= signature.initVerify(publicKey); signature.update(cipherData); boolean status = signature.verify(signData); System.out.println("status : " + status); //true }

小哇 2019-12-02 01:26:34 0 浏览量 回答数 0

问题

python的md5怎么加密文件

云计算小粉 2019-12-01 20:01:51 675 浏览量 回答数 1

问题

java MD5加密保存的密码忘记:报错

kun坤 2020-06-06 14:06:18 0 浏览量 回答数 1

问题

md5sum加密是怎么做的,和md5加密有什么区别吗

涤生、 2019-12-01 19:09:21 226 浏览量 回答数 1

回答

服务器端与客户端先共同约定好一个密钥K,客户端可通过SFHKeychainUtils等工具加密存储K;服务器端加密时,可获取当前unix时间戳,假设为T,则加密过程中可使用K-md5(T)-K(或任意其他规则,只要将T混淆到密钥中即可)为密钥,进行加密,并将加密时的时间戳T或md5(T)传给客户端;客户端根据相应的规则拼接好密钥后,进行解密。这样做的好处是,即使密钥K或任意一次会话过程中的密钥被破解,仍然无法完全对所有会话进行解密,必须同时知道K、密钥拼接规则以及加密方法才可完全破解。

a123456678 2019-12-02 03:12:41 0 浏览量 回答数 0

回答

1.如果是一般的话只有32&162.本来在理论上不可破解,但好像被人破解了,你可以看下参考 目前网上的dm5破解都是通过建立数据库进行查询的方法进行破解的 好像还没有直接破解的工具,网上的都属于类似穷举的方法MD5简介MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和c语言源代码在Internet RFC 1321中有详细的描述( ,这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IETF提交。 Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验和将产生MD2冲突。MD2算法的加密后结果是唯一的--即没有重复。 为了加强算法的安全性,Rivest在1990年又开发出MD4算法。MD4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。Den boer和Bosselaers以及其他人很快的发现了攻击MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,MD4就此被淘汰掉了。 尽管MD4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 一年以后,即1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD5完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。 Van oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force hash function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术),MD5怎么都应该算得上是非常安全的了。 2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。 令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。因为SHA-1在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。MD5破解工程权威网站 是为了公开征集专门针对MD5的攻击而设立的,网站于2004年8月17日宣布:“中国研究人员发现了完整MD5算法的碰撞;Wang, Feng, Lai与Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术,在数个小时内就可以找到MD5碰撞。……由于这个里程碑式的发现,MD5CRK项目将在随后48小时内结束”。 MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA.[编辑本段]算法的应用 MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程: 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。 我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。 MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。 所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码覆盖原来的就行了。 MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。 正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。

祁同伟 2019-12-02 01:27:09 0 浏览量 回答数 0

回答

1.如果是一般的话只有32&162.本来在理论上不可破解,但好像被人破解了,你可以看下参考 目前网上的dm5破解都是通过建立数据库进行查询的方法进行破解的 好像还没有直接破解的工具,网上的都属于类似穷举的方法MD5简介MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和c语言源代码在Internet RFC 1321中有详细的描述( ,这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IETF提交。 Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验和将产生MD2冲突。MD2算法的加密后结果是唯一的--即没有重复。 为了加强算法的安全性,Rivest在1990年又开发出MD4算法。MD4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。Den boer和Bosselaers以及其他人很快的发现了攻击MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,MD4就此被淘汰掉了。 尽管MD4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 一年以后,即1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD5完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。 Van oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force hash function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术),MD5怎么都应该算得上是非常安全的了。 2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。 令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。因为SHA-1在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。MD5破解工程权威网站 是为了公开征集专门针对MD5的攻击而设立的,网站于2004年8月17日宣布:“中国研究人员发现了完整MD5算法的碰撞;Wang, Feng, Lai与Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术,在数个小时内就可以找到MD5碰撞。……由于这个里程碑式的发现,MD5CRK项目将在随后48小时内结束”。 MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA.[编辑本段]算法的应用 MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程: 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。 我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。 MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。 所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码覆盖原来的就行了。 MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。 正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。

青衫无名 2019-12-02 01:27:08 0 浏览量 回答数 0

回答

1.如果是一般的话只有32&162.本来在理论上不可破解,但好像被人破解了,你可以看下参考 目前网上的dm5破解都是通过建立数据库进行查询的方法进行破解的 好像还没有直接破解的工具,网上的都属于类似穷举的方法MD5简介MD5的全称是Message-digest Algorithm 5(信息-摘要算法),用于确保信息传输完整一致。在90年代初由MIT Laboratory for Computer Science和RSA Data Security Inc,的Ronald L. Rivest开发出来,经MD2、MD3和MD4发展而来。它的作用是让大容量信息在用数字签名软件签署私人密钥前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是MD2、MD4还是MD5,它们都需要获得一个随机长度的信息并产生一个128位的信息摘要。虽然这些算法的结构或多或少有些相似,但MD2的设计与MD4和MD5完全不同,那是因为MD2是为8位机器做过设计优化的,而MD4和MD5却是面向32位的电脑。这三个算法的描述和c语言源代码在Internet RFC 1321中有详细的描述( ,这是一份最权威的文档,由Ronald L. Rivest在1992年8月向IETF提交。 Rivest在1989年开发出MD2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来,Rogier和Chauvaud发现如果忽略了检验和将产生MD2冲突。MD2算法的加密后结果是唯一的--即没有重复。 为了加强算法的安全性,Rivest在1990年又开发出MD4算法。MD4算法同样需要填补信息以确保信息的字节长度加上448后能被512整除(信息字节长度mod 512 = 448)。然后,一个以64位二进制表示的信息的最初长度被添加进来。信息被处理成512位damg?rd/merkle迭代结构的区块,而且每个区块要通过三个不同步骤的处理。Den boer和Bosselaers以及其他人很快的发现了攻击MD4版本中第一步和第三步的漏洞。Dobbertin向大家演示了如何利用一部普通的个人电脑在几分钟内找到MD4完整版本中的冲突(这个冲突实际上是一种漏洞,它将导致对不同的内容进行加密却可能得到相同的加密后结果)。毫无疑问,MD4就此被淘汰掉了。 尽管MD4算法在安全上有个这么大的漏洞,但它对在其后才被开发出来的好几种信息安全加密算法的出现却有着不可忽视的引导作用。除了MD5以外,其中比较有名的还有sha-1、RIPEMD以及Haval等。 一年以后,即1991年,Rivest开发出技术上更为趋近成熟的md5算法。它在MD4的基础上增加了"安全-带子"(safety-belts)的概念。虽然MD5比MD4稍微慢一些,但却更为安全。这个算法很明显的由四个和MD4设计有少许不同的步骤组成。在MD5算法中,信息-摘要的大小和填充的必要条件与MD5完全相同。Den boer和Bosselaers曾发现MD5算法中的假冲突(pseudo-collisions),但除此之外就没有其他被发现的加密后结果了。 Van oorschot和Wiener曾经考虑过一个在散列中暴力搜寻冲突的函数(brute-force hash function),而且他们猜测一个被设计专门用来搜索MD5冲突的机器(这台机器在1994年的制造成本大约是一百万美元)可以平均每24天就找到一个冲突。但单从1991年到2001年这10年间,竟没有出现替代MD5算法的MD6或被叫做其他什么名字的新算法这一点,我们就可以看出这个瑕疵并没有太多的影响MD5的安全性。上面所有这些都不足以成为MD5的在实际应用中的问题。并且,由于MD5算法的使用不需要支付任何版权费用的,所以在一般的情况下(非绝密应用领域。但即便是应用在绝密领域内,MD5也不失为一种非常优秀的中间技术),MD5怎么都应该算得上是非常安全的了。 2004年8月17日的美国加州圣巴巴拉的国际密码学会议(Crypto’2004)上,来自中国山东大学的王小云教授做了破译MD5、HAVAL-128、 MD4和RIPEMD算法的报告,公布了MD系列算法的破解结果。宣告了固若金汤的世界通行密码标准MD5的堡垒轰然倒塌,引发了密码学界的轩然大波。 令世界顶尖密码学家想象不到的是,破解MD5之后,2005年2月,王小云教授又破解了另一国际密码SHA-1。因为SHA-1在美国等国际社会有更加广泛的应用,密码被破的消息一出,在国际社会的反响可谓石破天惊。换句话说,王小云的研究成果表明了从理论上讲电子签名可以伪造,必须及时添加限制条件,或者重新选用更为安全的密码标准,以保证电子商务的安全。MD5破解工程权威网站 是为了公开征集专门针对MD5的攻击而设立的,网站于2004年8月17日宣布:“中国研究人员发现了完整MD5算法的碰撞;Wang, Feng, Lai与Yu公布了MD5、MD4、HAVAL-128、RIPEMD-128几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术,在数个小时内就可以找到MD5碰撞。……由于这个里程碑式的发现,MD5CRK项目将在随后48小时内结束”。 MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA.[编辑本段]算法的应用 MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如: MD5 (tanajiya.tar.gz) = 0ca175b9c0f726a831d895e269332461 这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程: 大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。 我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。 MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。 所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码覆盖原来的就行了。 MD5还广泛用于操作系统的登陆认证上,如Unix、各类BSD系统登录密码、数字签名等诸多方。如在UNIX系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。当用户登录的时候,系统把用户输入的密码进行MD5 Hash运算,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这可以避免用户的密码被具有系统管理员权限的用户知道。MD5将任意长度的“字节串”映射为一个128bit的大整数,并且是通过该128bit反推原始字符串是困难的,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码的Hash值覆盖原来的Hash值就行了。 正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共26+26+10=62个字符,排列组合出的字典的项数则是P(62,1)+P(62,2)….+P(62,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。-------------------------就低频来说我认为是EX71好,如果你没有太高的要求EX71 吧 EX71是目前最好的 价钱也便宜 。最重要的是性价比超高。。。我就买了部

行者武松 2019-12-02 01:27:09 0 浏览量 回答数 0

问题

CDN 如何实现鉴权配置?

青衫无名 2019-12-01 22:02:14 5539 浏览量 回答数 0

问题

简要介绍DES、RSA MD5 sha1 四种加密算法的优缺点,以及使用场合

知与谁同 2019-12-01 20:17:49 505 浏览量 回答数 1

回答

公开密钥体系是非对称加密体系. 非对称包含RSA算法. SLL算法是对称加密算法. 如果是SSL是一种安全网络协议. 数字签名一个是保持消息完整性的一个是保持用于表示发送者身份的. 比如一个文件你用MD5签名后.接收方一对比.是那个MD5值说明文件没有被更改. 用发送者的私钥签名则接收方用发送者的公钥解密后还原消息就知道是谁发送的. 对称加密,非对称加密是保持消息机密性和可靠性的 对文件的签名是保持消息的完整性的.

云篆 2019-12-02 01:26:56 0 浏览量 回答数 0

问题

md5加密问题

a123456678 2019-12-01 19:51:01 852 浏览量 回答数 1

问题

嵌入式环境下md5加密问题

蛮大人123 2019-12-01 20:08:23 1284 浏览量 回答数 1

回答

md5算法是不可逆的,没有办法得到原文###### 引用来自“韦小仇”的评论 md5算法是不可逆的,没有办法得到原文 MD5不可逆? 没有什么是彩虹表做不到的,如果有,那就是彩虹表不全。 ######如果有salt,够咸够复杂,彩虹表暂时失效。######答案是肯定不行的!即MD5算法处理过的字符是不可逆的,因为其根本不是一种加密算法,而是一种摘要算法,楼主明白什么叫摘要吗?也就是原文的一部分,md5的意思并不是加密,而是找出代表此密码的唯一标识。打比方说123456这组密码用001来表示。23456用002来表示,而这个001是不可能反向得到123456的,因为他们没有因为所以的关系只有逻辑关联,当然md5是则是独一无二的。即123456这个密码只会生成唯一的MD5,也就是如果001是123456的MD5,那除了1233456能生成001,其它任何密码都不可能生成同样的001。这也是md5被用于密码的原因。 md5被用为密码,因为密码在存为md5后,存的不是密文,而是其摘要,也就 是你输入123456转成md5为001存到数据库里下次只有输入123456才能生成001这个md5,才会表示输入正确,如果输入的是其它值则一定生成不了md5为001的值。这是因为md5的唯一性决定的。######没法得到,不过你可以重新设置一个呀,反正有salt,利用这个得到一个新的密码,然后数据库里替换下就好了

kun坤 2020-06-08 09:43:19 0 浏览量 回答数 0

问题

md5 转 sha-1:报错

kun坤 2020-06-06 14:26:45 0 浏览量 回答数 1

回答

下载md5.js文件(下载链接:http://files.cnblogs.com/files/tuyile006/md5.rar),在网页中引用该文件: 在你需要使用MD5加密的地方如此调用: hash = hex_md5("input string");

viacc 2019-12-02 00:55:27 0 浏览量 回答数 0
阿里云大学 云服务器ECS com域名 网站域名whois查询 开发者平台 小程序定制 小程序开发 国内短信套餐包 开发者技术与产品 云数据库 图像识别 开发者问答 阿里云建站 阿里云备案 云市场 万网 阿里云帮助文档 免费套餐 开发者工具 云栖号物联网 小程序开发制作 视频内容分析 企业网站制作 视频集锦 代理记账服务 2020阿里巴巴研发效能峰会 企业建站模板 云效成长地图 高端建站 云栖号弹性计算 阿里云云栖号 云栖号案例 云栖号直播