md5加密算法

13种加密与解密算法【一】

二次信任 提交于 2020-04-04 12:57:47
这15种加密解密算法分别是:散列哈希[MD5、SHA1、CRC32],对称[DES,3DES(TDEA、Triple DES),AES、,Blowfish,RC4、RC5,IDEA],Base64、Rabbit、Escape。 【三种分类】 1、对称加密:密钥只有一个,解密、解密都是这个密码,加解密速度快,典型的对称加密有DES、AES、RC4等 2、非对称加密:密钥成对出现,分别为公钥和私钥,从公钥无法推知私钥,反之,从私钥也无法推知公钥,加密和解密使用不同的密钥,公钥加密需要私钥解密,反之,私钥加密需要公钥解密。非对称加密速度较慢,典型的非对称算法有:RSA,DSA,DSS. 3、Hash算法,这是一种不可逆的算法,它常用于验证数据的完整性。 【1、MD5加密解密】 md5是不可逆的,md5没有解密的方法,最好的反驳就是:数据源是无穷尽的,而 MD5密文是有限的。这里的加密解密是对md5算法先加密后解密,而不是对md5解密。 md5加密原理 MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 // MD5加密,32位 public static String MD5(String str) { MessageDigest md5 = null;

利用php的mcrypt模块加密解密(AES、DES等等)

岁酱吖の 提交于 2020-03-28 02:44:47
php des加密: $cipher_list = mcrypt_list_algorithms();//mcrypt支持的加密算法列表 $mode_list = mcrypt_list_modes();//mcrypt支持的加密模式列表 // print_r($cipher_list); // print_r($mode_list); function encrypt($key,$data){ $td = mcrypt_module_open("des", "", "ecb", "");//使用MCRYPT_DES算法,ecb模式 $size = mcrypt_enc_get_iv_size($td); //设置初始向量的大小 $iv = mcrypt_create_iv($size,MCRYPT_RAND); //创建初始向量 $key_size = mcrypt_enc_get_key_size($td); //返回所支持的最大的密钥长度(以字节计算) $salt = ''; $subkey = substr(md5(md5($key).$salt), 0,$key_size);//对key复杂处理,并设置长度 mcrypt_generic_init($td, $subkey, $iv); $endata = mcrypt_generic($td, $data);

公私钥与加密、签名

依然范特西╮ 提交于 2020-03-28 02:24:42
先明确一下概念: 公钥加密私钥解密, 没问题,也可以说是 "公共密钥加密系统 " 私钥加密公钥解密,一般不这么说,应叫 "私钥签名,公钥验证 ",也可以说是“公共密钥签名系统” 再来说一下 "公共密钥签名系统 "目的:(如果晕就多看几遍,这个没搞清,后面的代码就更晕) A欲传(信息)给B,但又怕B不确信该信息是A发的。 1.A选计算(信息)的HASH值,如用MD5方式计算,得到:[MD5(信息)] 2.然后用自已的私钥加密HASH值,得到:[私钥(MD5(信息))] 3.最后将信息与密文一起传给B:传给B:[(信息) + 私钥(MD5(信息))] B接到 :[(信息) + 私钥(MD5(信息))] 1.先用相同的HASH算法算出(信息)的HASH值,这里也使用MD5方式 得到: [MD5(信息)!] 2. 再用A的公钥解密 [ 私钥(MD5(信息))] [公钥(私钥(MD5(信息)))] = [(MD5(信息)] 如能解开,证明该 [ 私钥(MD5(信息))]是A发送的 3.再比效[MD5(信息)!]与[(MD5(信息)] 如果相同,表示(信息)在传递过程中没有被他人修改过 再补充一点,非对称密钥的目的是为了实现不对等的身份验证。加密算法在这里只是实现目的的一个手段。 他不适合大数据块的加密。这种方式还应该用对称密钥加密方法(如DES) 注意,我为何说这种方式不叫加密:因为A所发的

如何面对最强算法MD5被破译

社会主义新天地 提交于 2020-03-27 10:15:32
在2004年召开的国际密码学年会上,来自中国山东大学王小云教授的一篇关于"破译MD5、HAVAL-128、MD4以及RIPEMD-128算法"的 报告引起了轰动,报告中提到的新破译方法几乎标志着世界通信密码标准——MD5堡垒的轰然倒塌。一石激起千层浪,此前一直负责公开征集针对MD5的攻击而 设立的权威站点http://www.md5crk.com/宣布"由于MD5破译获得突破性进展,MD5破解项目(MD5CRK Project)即日停止",并开始提供该站点以往技术资料的下载,预计该站点也将在不久的将来完全关闭。面对MD5被破译,有人一声叹息,有人觉得不可 思议,更有人忧虑甚至恐慌......那么究竟MD5有什么来头?它被破译是否意味着"地球将不再旋转"?谁将成为它的继承者? 一、MD5是何方神圣? 所 谓MD5,即"Message-Digest Algorithm 5(信息-摘要算法)",它由MD2、MD3、MD4发展而来的一种单向函数算法(也就是HASH算法),它是国际著名的公钥加密算法标准RSA的第一设 计者R.Rivest于上个世纪90年代初开发出来的。MD5的最大作用在于,将不同格式的大容量文件信息在用数字签名软件来签署私人密钥前"压缩"成一 种保密的格式,关键之处在于——这种"压缩"是不可逆的。 为了让读者朋友对MD5的应用有个直观的认识

MD5简介

久未见 提交于 2020-03-27 09:19:25
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 rfcs 1321中有详细的描述(http://www.ietf.org/rfc/rfc1321.txt),这是一份最权威的文档,由ronald l. rivest在1992年8月向ieft提交。 rivest在1989年开发出md2算法。在这个算法中,首先对信息进行数据补位,使信息的字节长度是16的倍数。然后,以一个16位的检验和追加到信息末尾。并且根据这个新产生的信息计算出散列值。后来,rogier和chauvaud发现如果忽略了检验和将产生md2冲突

MD5简介以及运用

穿精又带淫゛_ 提交于 2020-03-25 20:44:47
md5介绍 1. md5简介 md5的全称是 md5信息摘要算法(英文:MD5 Message-Digest Algorithm ) ,一种被广泛使用的密码散列函数,可以产生一个128位(16字节,1字节8位)的散列值(常见的是用32位的16进制表示,比如:0caa3b23b8da53f9e4e041d95dc8fa2c),用于确保信息传输的完整一致。 2. md5原理 md5将整个文件当做一个大文本信息,通过不可逆的字符串变换算法,产生一个唯一的MD5信息摘要。文件的md5类似于人的指纹,在世界上是独立无二的,如果任何人对文件做了任何改动,其md5的值也就是对应的“数字指纹”都会发生变化。 对MD5算法简要的叙述可以为:MD5以512位分组来处理输入的信息,且每一分组又被划分为16个32位子分组,经过了一系列的处理后,算法的输出由四个32位分组组成,将这四个32位分组级联后将生成一个128位散列值。 md5与对称和非对称加密算法不同,这两种密码是防止信息被窃取,而摘要算法的目标是用于证明原文的完整性。 3. md5特性 1. 不可逆 没有系统有办法知道md5原来的文字是什么。 2. 具有高度的离散性 md5码具有高度的散列性,没有规律可循,哪怕原信息只有一点点的变化,比如多个空格,那么就会导致md5发生巨大变化,也可以说产生的md5码是不可预测的。 3. 压缩性 任意长度的数据

php常用加密函数和算法

♀尐吖头ヾ 提交于 2020-03-19 03:12:10
关键词: 不可逆: md5(); 计算字符串的 MD5 散列值 不可逆 默认返回32位的16进制 crypt(); 单向字符串散列 可以混淆盐值 不可逆 sha1(); 计算字符串的 sha1 散列值 默认返回值是一个 40 字符长度的十六进制数字。 不可逆 hash() hash($ago,$data); $ago是可以指定加密使用的哈希算法,例如:"md5","sha256","haval160,4" 等。$data是要加密的数据 不可逆 password_hash() – 对密码加密. $hash = password_hash($passwod, PASSWORD_DEFAULT); 现在PHP的官方都是推荐这种方式来加密用户的密码,很多流行的框架比如Laravel就是用的这种加密方式。 可逆: URL编码加密 urlencode() urldecode() url传递 保护特殊字符串使用 $str=" http://guojiadong.com?name= ".urlencode('guojiadong&123'); 可逆 Base64编码加密 base64_encode() base64_decode() base64加密本质上说就是把数据转换为ASCLL码 ,这会更有利于文件的传输,当然base64的作用在与文件的传输 可逆 PHP的openssl扩展

认识MD5加密数据库中的用户密码

五迷三道 提交于 2020-03-05 08:13:17
现在网络上一般的网站,稍微完善一点的,往往都需要用户先注册,提供诸如电子邮件、账号、密码等信息以后,成为网站栏目的注册用户,才可以享受网站一些特殊栏目提供的信息或者服务,比如免费电子邮件、论坛、聊天等,都需要用户注册。而对于电子商务网站,比如igo5等大型电子商务网站,用户需要购买商品,就一定需要详细而准确的注册,而这些信息,往往是用户很隐秘的信息,比如电话、电子邮件、地址等,所以,注册信息对于用户和网站都是很重要的资源,不能随意透露,更加不能存在安全上的隐患。 如果我们也设计一个需要用户注册的网站,根据现在的常用技术实现方法,可以在数据库中建立一个用于存放用户信息的表,这个表中至少包括用户账号字段:UserAccount和用户密码字段:Password,当然,实际应用中一个用户信息表不可能就只有这些信息,往往根据网站服务要求,会适当增加一些其他的信息,以方便网站提供更加完善的服务。一般的,一个用户信息占用这个用户信息表的一行也就是一个数据记录,当用户登录或者提交资料的时候,程序将用户填写的信息与表中的信息对照,如果用户账号和密码都准确无误,那么说明这个用户是合法用户,通过注册;反之,则是非法用户,不许通过。 然而,是不是这样就安全了了? 是不是这样就能满足网站的注册要求了呢? 仔细想想,我们一般将用户资料直接保存在数据库中,并没有进行任何的保密措施

加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较

末鹿安然 提交于 2020-02-29 17:15:20
转载自:http://www.cnblogs.com/sochishun/p/7028056.html 加密算法(DES,AES,RSA,MD5,SHA1,Base64)比较和项目应用 加密技术通常分为两大类:"对称式"和"非对称式"。 对称性加密算法: 对称式加密就是加密和解密使用同一个密钥。信息接收双方都需事先知道密匙和加解密算法且其密匙是相同的,之后便是对数据进行加解密了。对称加密算法用来对敏感数据等信息进行加密。 非对称算法: 非对称式加密就是加密和解密所使用的不是同一个密钥,通常有两个密钥,称为"公钥"和"私钥",它们两个必需配对使用,否则不能打开加密文件。发送双方A,B事先均生成一堆密匙,然后A将自己的公有密匙发送给B,B将自己的公有密匙发送给A,如果A要给B发送消 息,则先需要用B的公有密匙进行消息加密,然后发送给B端,此时B端再用自己的私有密匙进行消息解密,B向A发送消息时为同样的道理。 散列算法: 散列算法,又称哈希函数,是一种单向加密算法。在信息安全技术中,经常需要验证消息的完整性,散列(Hash)函数提供了这一服务,它对不同长度的输入消息,产生固定长度的输出。这个固定长度的输出称为原输入消息的"散列"或"消息摘要"(Message digest)。散列算法不算加密算法,因为其结果是不可逆的,既然是不可逆的,那么当然不是用来加密的,而是签名。 对称性加密算法有

MD5加密算法

瘦欲@ 提交于 2020-02-27 20:17:28
转载: https://blog.csdn.net/mp624183768/article/details/80575843 全称:message-digest algorithm 5 翻译过来就是:信息 摘要 算法 5 MD5消息摘要算法,属Hash算法一类。MD5算法对输入任意长度的消息进行运行,产生一个128位的消息摘要。 以下所描述的消息长度、填充数据都以位(Bit)为单位,字节序为小端字节。 1.特点 (1)长度固定: 不管多长的字符串,加密后长度都是一样长 作用:方便平时信息的统计和管理 (2)易计算: 字符串和文件加密的过程是容易的. 作用: 开发者很容易理解和做出加密工具 (3)细微性: 一个文件,不管多大,小到几k,大到几G,你只要改变里面某个字符,那么都会导致MD5值改变. 作用:很多软件和应用在网站提供下载资源,其中包含了对文件的MD5码,用户下载后只需要用工具测一下下载好的文件,通过对比就知道该文件是否有过更改变动. (4)不可逆性: 你明明知道密文和加密方式,你却无法反向计算出原密码. 作用:大大提高了数据的安全性 2.撞库破解 这是概率极低的破解方法,原理就是: (1)建立一个大型的数据库,把日常的各个语句,通过MD5加密成为密文,不断的积累大量的句子,放在一个庞大的数据库里. (2)比如一个人拿到了别人的密文,想去查询真实的密码