1.CRCåçç®ä»
2.CRC16校验算法源码(易语言)
3.求DES密码值
4.SIFT算法原理与源码分析
5.CRC-8和CRC-16算法
6.谁能准确的校验告诉我“MD5”值是什么意思,干什么用的算法
CRCåçç®ä»
æè¿å好ææ¶é´ï¼æ´çäºä¸ä¸å ³äºCRCçèµæï¼è¯¦ç»å¯¹æ¯äºä¸ç¨åºçå®ç°è¿ç¨ååçï¼å½ç¶ï¼é«æé½æ¯ä¸å¨æçã
æ¬æ主è¦ä»ç»CRCçä¸äºåºç¡ç¥è¯ï¼ä¸ªäººæ¶è·æ¯åé¢å ³äºç½ä¸æ åDemoç¨åºçä¸äºè¯¦ç»è§£æãè§ä¸ä¸ç¯/p/c0dc2ece
声æï¼æ¬æå®ä¹é¨ååèç½ä¸å¤å¤èµæï¼åªæ¯ä¸ºäºæ¹ä¾¿å个ç¬è®°ï¼å¼ç¨ç½æåä¸äºæ´æ¹ï¼å¦æé·åï¼è¯·ç§ä¿¡è¯´æ并修æ¹ã
ä¸ãå ³äºCRCçä»ç»
CRCå³å¾ªç¯åä½æ ¡éªç ï¼Cyclic Redundancy Checkï¼ï¼æ°æ®éä¿¡é¢åä¸æ常ç¨çä¸ç§å·®éæ ¡éªç ï¼å ¶ä¿¡æ¯å段åæ ¡éªå段é¿åº¦å¯ä»¥ä»»ææå®ï¼ä½è¦æ±éä¿¡åæ¹å®ä¹çCRCæ åä¸è´ã
äºãå·¥ä½åç
对äºå·¥æ§é¢åï¼æ们主è¦å©ç¨CRCæ ¡éªæ¥å¤çåç§æ°æ®æµçæ°æ®æ£ç¡®æ§æ ¡éªã
CRCåç ï¼å¨Kä½ä¿¡æ¯ç ï¼ç®æ åéæ°æ®ï¼ååæ¼æ¥Rä½æ ¡éªç ï¼ä½¿æ´ä¸ªç¼ç é¿åº¦ä¸ºNä½ï¼å æ¤è¿ç§ç¼ç ä¹å«ï¼N,Kï¼ç ãéä¿ç说ï¼å°±æ¯å¨éè¦åéçä¿¡æ¯åé¢éå ä¸ä¸ªæ°ï¼å³æ ¡éªç ï¼ï¼çæä¸ä¸ªæ°çåéæ°æ®åéç»æ¥æ¶ç«¯ãè¿ä¸ªæ°æ®è¦æ±è½å¤ä½¿çæçæ°æ°æ®è¢«ä¸ä¸ªç¹å®çæ°æ´é¤ãè¿éçæ´é¤éè¦å¼å ¥æ¨¡ 2é¤æ³çæ¦å¿µï¼éä¸ç¾åº¦ç¾ç§å ³äºæ¨¡2计ç®çé¾æ¥ï¼
/item/模2è¿ç®/?fr=aladdin
é£ä¹ï¼CRCæ ¡éªçå ·ä½åæ³å°±æ¯
ï¼1ï¼éå®ä¸ä¸ªæ åé¤æ°ï¼Kä½äºè¿å¶æ°æ®ä¸²ï¼
ï¼2ï¼å¨è¦åéçæ°æ®ï¼mä½ï¼åé¢å ä¸K-1ä½0ï¼ç¶åå°è¿ä¸ªæ°æ°ï¼M+K-1ä½ï¼ä»¥æ¨¡2é¤æ³çæ¹å¼é¤ä»¥ä¸é¢è¿ä¸ªæ åé¤æ°ï¼æå¾å°çä½æ°ä¹å°±æ¯è¯¥æ°æ®çCRCæ ¡éªç ï¼æ³¨ï¼ä½æ°å¿ é¡»æ¯é¤æ°å°ä¸åªå°ä¸ä½ï¼ä¸å¤å°±è¡¥0ï¼
ï¼3ï¼å°è¿ä¸ªæ ¡éªç éå¨åmä½æ°æ®åé¢ï¼æææ°çM+K-1ä½æ°æ®ï¼åéç»æ¥æ¶ç«¯ã
ï¼4ï¼æ¥æ¶ç«¯å°æ¥æ¶å°çæ°æ®é¤ä»¥æ åé¤æ°ï¼å¦æä½æ°ä¸º0å认为æ°æ®æ£ç¡®ã
注æï¼ CRCæ ¡éªä¸æä¸¤ä¸ªå ³é®ç¹ï¼ä¸æ¯è¦é¢å ç¡®å®ä¸ä¸ªåé端åæ¥æ¶ç«¯é½ç¨æ¥ä½ä¸ºé¤æ°çäºè¿å¶æ¯ç¹ä¸²ï¼æå¤é¡¹å¼ï¼ï¼äºæ¯æåå§å¸§ä¸ä¸é¢éå®çé¤è¿è¡äºè¿å¶é¤æ³è¿ç®ï¼è®¡ç®åºFCSãåè å¯ä»¥éæºéæ©ï¼ä¹å¯æå½é ä¸éè¡çæ åéæ©ï¼ä½æé«ä½åæä½ä½å¿ é¡»å为â1â
å®ä¾ï¼å¯¹äºæ°æ®ï¼#B3ï¼ï¼ä»¥æå®é¤æ°æ±å®çCRCæ ¡éªç ï¼å ¶è¿ç¨å¦ä¸ï¼
å ³äºæ ¡éªç ç计ç®ï¼éç¹æ¥äºï¼
å纯è°CRCç模2é¤æ³å ¶å®å¹¶ä¸å°é¾ï¼ä½å®é 计ç®ä¸ç»å¸¸ä¼éå°è®¡ç®åºæ¥çç»æåå®é ä¸ä¸è´çæ åµï¼è¿ä¹æ¯è¿å 天æå¨ççä¸è¥¿ã
è¿ééè¦ç¥éå 个ç»æé¨åæè 说计ç®æ¦å¿µï¼å¤é¡¹å¼å ¬å¼ãå¤é¡¹å¼ç®è®°å¼ãæ°æ®å®½åº¦ãåå§å¼ãç»æå¼æå¼ãè¾å ¥å¼å转ãè¾åºå¼å转ãåæ°æ¨¡åã
1ãå¤é¡¹å¼å ¬å¼
对äºCRCæ åé¤æ°ï¼ä¸è¬ä½¿ç¨å¤é¡¹å¼ï¼æäºé¡¹å¼ï¼å ¬å¼è¡¨ç¤ºï¼å¦ä¸ä¾ä¸é¤æ°çäºé¡¹å¼ä¸ºG(X)=X4+X3+X+1ï¼Xçææ°å°±ä»£è¡¨äºè¯¥bitä½ä¸çæ°æ®ä¸º1,ï¼æä½ä½ä¸º0ï¼ãè¿éç¹å«æ³¨æä¸ä¸ä½æ°é®é¢ï¼é¤æ°çä½æ°ä¸ºäºé¡¹å¼æé«æ¬¡å¹+1ï¼4+1=5ï¼ï¼è¿ä¸ªå¾éè¦ã
2ãå¤é¡¹å¼ç®è®°å¼
éè¿å¯¹CRCçåºæ¬äºè§£æ们ç¥éï¼å¤é¡¹å¼çé¦å°¾å¿ å®ä¸º1ï¼èè¿ä¸ª1çä½ç½®å¨ä¸ä¸æ¥è®¡ç®ä¸å®ä¸º0ï¼æ以就æåé¢è¿ä¸ª1ç»çç¥æäºï¼åºç°äºä¸ä¸ªå«ç®è®°å¼çä¸è¥¿ï¼å¦ä¸ä¾ä¸é¤æ°çç®è®°å¼ä¸ºï¼å¾å¤çè¿CRCé«çº§è¯è¨æºç ç人ä¼ç¥éï¼å¯¹äºCRC_æ åä¸G(X)=X+X+X2+1ï¼#ï¼çpolyå¼å®é ä¸æ¯ï¼è¿é使ç¨çå°±æ¯ç®è®°å¼ãåé¢ä¼å¯¹è¿ä¸ªç¨æ³åä¸ä¸ªè¯´æã
3ãæ°æ®å®½åº¦
æ°æ®å®½åº¦æçå°±æ¯CRCæ ¡éªç çé¿åº¦ï¼äºè¿å¶ä½æ°ï¼ï¼ç¥éäºCRCçè¿ç®æ¦å¿µåå¤é¡¹å¼ï¼å°±å¯ä»¥ç解è¿ä¸ªæ¦å¿µäºï¼CRCé¿åº¦å§ç»è¦æ¯é¤æ°ä½æ°å°1ï¼ä¸ç®è®°å¼é¿åº¦æ¯ä¸è´çã
以ä¸ä¸ä¸ªæ°æ®å°±æ¯æ们ç»å¸¸è½å¤ç¨å°çåºæ¬æ°æ®
4ãåå§å¼ä¸ç»æå¼æå¼
å¨ä¸äºæ åä¸ï¼è§å®äºåå§å¼ï¼åæ°æ®å¨è¿è¡ä¸è¿°äºé¡¹å¼è¿ç®ä¹åï¼éè¦å å°è¦è®¡ç®çæ°æ®ä¸åå§å¼çæä½åèè¿è¡å¼æï¼ç¶ååä¸å¤é¡¹å¼è¿è¡è®¡ç®ã
èå¨ç»æå¼æå¼ä¸ä¸ºé¶çæ åµä¸ï¼åéè¦å°è®¡ç®å¾å°çCRCç»æå¼åä¸ç»æå¼æå¼è¿è¡ä¸æ¬¡å¼æ计ç®ï¼å¾å°çæç»å¼ææ¯æ们éè¦çCRCæ ¡éªç ã
è¿éå¯ä»¥çåºï¼åå§å¼ä¸ç»æå¼çä½æ°è¦æ±ä¸æ°æ®å®½åº¦ä¸è´ã
5ãè¾å ¥å¼å转ä¸è¾åºå¼å转
è¾å ¥å¼å转çæææ¯å¨è®¡ç®ä¹åå å°äºé¡¹å¼å转ï¼ç¶ååç¨å¾å°çæ°å¼åæ°æ®è¿è¡è®¡ç®ãå¦å¯¹äºG(X)=X+X+X2+1ï¼#ï¼ï¼å ¶æ£åå¼ä¸º1 ï¼å转å¼å为 1
è¾åºå¼å转åæ¯å°æç»å¾å°çCRCç»æå转ã
é常ï¼è¾å ¥å¼å转åçç»æå¼ä¹ä¼æ¯å转çï¼æ以è¿ä¸¤ä¸ªé项ä¸è¬æ¯ååçï¼æ们åªæå¨å¨çº¿CRC计ç®å¨ä¸ä¼çå°èªç±éæ©æ£å转çæ åµåå¨ã
é£ä¹ï¼è¿éå¼ç¨CSDNå主 bobde çä¸æ®µæ»ç»ï¼
CRCãCRCçå¤åèçæ ¡éªå¼ç计ç®æå ç¹éè¦æ¸ æ¥ï¼åªé对ä¸æ¬¡ä¸ä¸ªåèçç®æ³ï¼ï¼
1) åå§å¼ä¸ä¸º0çæ åµä¸ï¼è¯¥å¦ä½è®¡ç®ï¼
è¾å ¥æ°æ®éè¦å转ï¼å å°è¦è®¡ç®çæ°æ®ä¸åå§å¼çæä½åèè¿è¡å¼æï¼åä¸å转åçå¤é¡¹å¼è¿è¡è®¡ç®ã
è¾å ¥æ°æ®ä¸éè¦å转ï¼å å°è¦è®¡ç®çæ°æ®å·¦ç§»å°ä¸åå§å¼å¯¹é½çä½ç½®ï¼å¦CRCç®æ³ï¼å左移8ä½ï¼ä½ä½å¡«å 0ï¼å¦CRCç®æ³ï¼å左移ä½ï¼ä½ä½å¡«å 0ï¼ä¸åå§å¼è¿è¡å¼æï¼åä¸æ£å¸¸çå¤é¡¹å¼è¿è¡è®¡ç®ã
2) ç»æå¼æå¼ä¸ä¸º0çæ åµï¼ç¬¬ä¸æ¥ç®å¾å°çCRCå¼åä¸ç»æå¼æå¼è¿è¡å¼ææä½å¾å°æç»çæ ¡éªå¼ï¼
è¾åºæ°æ®å转ï¼å¦æè¾å ¥æ°æ®æ¯å转ç模å¼ï¼åç»æä¹æ¯å转ç
è¾åºæ°æ®ä¸å转ï¼å¦æè¾å ¥æ°æ®æ¯ä¸å转ç模å¼ï¼åç»æä¹æ¯ä¸å转ç
3ï¼åå§å¼çéæ©æ¯å¯èªå·±å®ä¹ï¼å¾å¤ä¸åçå家使ç¨çåå§å¼æ¯ä¸ä¸æ ·ï¼ä¸ä¸æ ·çåå§å¼å¾å°çç»æä¹æ¯ä¸ä¸æ ·çã
---------------------
åæï¼puter science和rsa data security inc的ronald l. rivest开发出来,经md2、程序md3和md4发展而来。源码它的校验作用是让大容量信息在用数字签名软件签署私人密匙前被"压缩"成一种保密的格式(就是把一个任意长度的字节串变换成一定长的大整数)。不管是算法机器人源码运行md2、md4还是程序md5,它们都需要获得一个随机长度的源码信息并产生一个位的信息摘要。虽然这些算法的校验结构或多或少有些相似,但md2的算法设计与md4和md5完全不同,那是程序因为md2是为8位机器做过设计优化的,而md4和md5却是源码面向位的电脑。这三个算法的校验种树h5源码描述和c语言源代码在internet rfcs 中有详细的描述(/ 是为了公开征集专门针对MD5的攻击而设立的,网站于年8月日宣布:“中国研究人员发现了完整MD5算法的算法碰撞;Wang, Feng, Lai与Yu公布了MD5、MD4、程序HAVAL-、RIPEMD-几个 Hash函数的碰撞。这是近年来密码学领域最具实质性的研究进展。使用他们的技术,在数个小时内就可以找到MD5碰撞。……由于这个里程碑式的发现,MD5CRK项目将在随后小时内结束”。
MD5用的是哈希函数,在计算机网络中应用较多的不可逆加密算法有RSA公司发明的MD5算法和由美国国家技术标准研究所建议的安全散列算法SHA.
算法的应用
MD5的典型应用是对一段信息(Message)产生信息摘要(Message-Digest),以防止被篡改。比如,电影订票系统源码下载在UNIX下有很多软件在下载的时候都有一个文件名相同,文件扩展名为.md5的文件,在这个文件中通常只有一行文本,大致结构如:
MD5 (tanajiya.tar.gz) = 0cab9c0fade
这就是tanajiya.tar.gz文件的数字签名。MD5将整个文件当作一个大文本信息,通过其不可逆的字符串变换算法,产生了这个唯一的MD5信息摘要。为了让读者朋友对MD5的应用有个直观的认识,笔者以一个比方和一个实例来简要描述一下其工作过程:
大家都知道,地球上任何人都有自己独一无二的指纹,这常常成为公安机关鉴别罪犯身份最值得信赖的方法;与之类似,MD5就可以为任何文件(不管其大小、源码如果没有安装教程格式、数量)产生一个同样独一无二的“数字指纹”,如果任何人对文件做了任何改动,其MD5值也就是对应的“数字指纹”都会发生变化。
我们常常在某些软件下载站点的某软件信息中看到其MD5值,它的作用就在于我们可以在下载该软件后,对下载回来的文件用专门的软件(如Windows MD5 Check等)做一次MD5校验,以确保我们获得的文件与该站点提供的文件为同一文件。利用MD5算法来进行文件校验的方案被大量应用到软件下载站、论坛数据库、系统文件安全等方面。
MD5的grub2 源码修改典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.txt文件中,并对这个readme.txt产生一个MD5的值并记录在案,然后你可以传播这个文件给别人,别人如果修改了文件中的任何内容,你对这个文件重新计算MD5时就会发现(两个MD5值不相同)。如果再有一个第三方的认证机构,用MD5还可以防止文件作者的“抵赖”,这就是所谓的数字签名应用。
所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码覆盖原来的就行了。
MD5还广泛用于加密解密技术上,如Unix、各类BSD系统登录密码(在MD5诞生前采用的是DES加密算法,后因MD5安全性更高,DES被淘汰)、通信信息加密(如大家熟悉的即时通信软件MyIM)、数字签名等诸多方。比如在UNIX系统中用户的密码就是以MD5(或其它类似的算法)经加密后存储在文件系统中。当用户登录的时候,系统把用户输入的密码计算成MD5值,然后再去和保存在文件系统中的MD5值进行比较,进而确定输入的密码是否正确。通过这样的步骤,系统在并不知道用户密码的明码的情况下就可以确定用户登录系统的合法性。这不但可以避免用户的密码被具有系统管理员权限的用户知道,而且还在一定程度上增加了密码被破解的难度。MD5将任意长度的“字节串”变换成一个bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。所以,要遇到了md5密码的问题,比较好的办法是:你可以用这个系统中的md5()函数重新设一个密码,如admin,把生成的一串密码覆盖原来的就行了。
正是因为这个原因,现在被黑客使用最多的一种破译密码的方法就是一种被称为"跑字典"的方法。有两种方法得到字典,一种是日常搜集的用做密码的字符串表,另一种是用排列组合方法生成的,先用MD5程序计算出这些字典项的MD5值,然后再用目标的MD5值在这个字典中检索。我们假设密码的最大长度为8位字节(8 Bytes),同时密码只能是字母和数字,共++=个字符,排列组合出的字典的项数则是P(,1)+P(,2)….+P(,8),那也已经是一个很天文的数字了,存储这个字典就需要TB级的磁盘阵列,而且这种方法还有一个前提,就是能获得目标账户的密码MD5值的情况下才可以。这种加密技术被广泛的应用于UNIX系统中,这也是为什么UNIX系统比一般操作系统更为坚固一个重要原因。