zoukankan      html  css  js  c++  java
  • 加密

    对称加密

    	1.对称加密:
    		加密和解密使用同一个密钥,其安全性依赖于密钥而非算法。
    
    	2.对称加密的算法:
    		DES(Data Encryption Standard):数据加密标准,速度较快,适用于加密大量数据的场合,是56bits加密。
    		3DES(Triple DES):是基于DES,对一块数据用三个不同的密钥进行的三次加密,强度较高。
    		AES(Advanced Encrpytion Standard):高级加密标准,是下一代的加密算法标准,速度快,安全级别高,含有128、192、256bits加密。
    		IDEA:这种算法是在DES算法的基础上发展出来的,类似于三重DES,IDEA的密钥为128位。
    		Blowfish 、Twofish、RC6 、CAST5….等
    
    	3.对称(传统)加密算法的优缺点:
    		优点:
    			算法公开、计算量小、加密速度快、加密效率高。
    		缺点:
    			1.交易双方都用同样的密钥,安全性得不到保证。
    			2.每对用户每次使用对称加密算法时,都需要使用其他人不知道的唯一密钥,这会使得发收双方所拥有的密钥数量几何级增长,密钥管理成为用户的负担。对称加密算法在分布式网络系统上使用较为困难,主要因为密钥管理困难,使用成本高。3.数据来源无法确认。
    	4.实现对称加密的工具:
    		gpg(有些麻烦)
    		openssl enc (常用)
    

    非对称加密

    	1。非对称加密:
    		加密和解密用不同个的密钥,其安全性依赖于算法与密钥。非对称加密另一个称呼为公钥加密。
    	
    	2。非对称加密的特点:
    		有两个密钥,公钥(publicky)和私钥(privatekey),一个公钥有且只有一个与之对应的私钥。
    		加密密钥和解密密钥是成对出现的,公钥公开,私钥自己留存。
    		公钥是从私钥中提取而来,用公钥加密数据,只能使用与之配对的私钥解密;反之亦然。
    		某个用户用其私钥解密数据,其他用户有其公约解密,从而实现了数字签名的作用。
    		公约加密的另一个作用是实现密钥交换。
    		公钥的密钥长,加密和解密速度慢。
    		
    	3。注意:
    		1.非对称加密的算法运行速度相对慢,所以当需要加密大量数据时,建议采用速度快的对称加密算法,提高加解密速度。
    		2.实际操作中是配合对称和非对称加密的,采用非对称加密算法管理对称加密算法的密钥,然后用对称加密算法的密钥来加密和解密数据。
    
    	4。非对称加密的算法:
    		RSA:由RSA公司发明,是一个支持变长密钥的公共密钥算法,需要加密的文件块的长度也是可变的。
    		DSA(Digital Signature Algoorithm):数字签名算法,是一种标准的DSS(数字签名标准)。
    		ECC(Elliptic Curves Cryptography):椭圆曲线密码编码学。
    		
    	5。实现:
    		实现加密:
    			接收者:
    				生成公钥/密钥对:P和S
    				公开公钥P ,保密密钥S
    			发送者:
    				使用接收者的公钥来加密消息M
    				将P(M)发送给接收者
    			接收者:
    				使用密钥S来解密:M=S(P(M))
    		实现数字签名:
    			发送者:
    				生成公钥/密钥对:P和S
    				公开公钥P,保密密钥S
    				使用密钥S来加密消息M
    				发送给接收者S(M)
    			接收者:
    				使用发送者的公钥来解密M=P(S(M))
    		结合签名和加密:
    			a用密钥S来加密消息M1发给b来确认身份,
    			b确认身份后,用a公开的密钥P来加密消息M2发送给a,
    			a用密钥S解密M2。
    
    	6。非对称加密的工具
    		openssl rsautl,openssl genrsa,openssl rsa
    		gpg(很少用)
    

    单向加密

    	1。单向加密:
    		单向加密,不能解密,因为解密过程是一个二次加密的过程,主要是提取数据的特征码。
    		单向加密算法又称摘要算法或散列算法,也称散列或散列值。
    		散列就是通过把一个叫做散列算法的单向数学函数应用于数据,将任意长度的一块数据转换位一个定长的、不可逆转的数字,其长度在128-256位之间。
    		由于散列值足够长,因此找到两块相同散列值的数据的机会很小。
    		
    	2。单向加密的特性:
    		只要源文本不同,计算得到的结果必然不同,或者说相同的机会很少。
    		无法从结果反退出源数据。
    		任何输入信息的变化,哪怕仅仅一位,都将导致结果的明显变化,也就是说具有雪崩效应。
    		定长输出且不可逆。
    		
    	3。单向加密的作用:
    		确保数据的完整性
    		
    	4。单向加密的算法有:
    		MD5(Message Digest Algorithm 5)(信息-摘要算法):是一种单向散列算法,可以用来把不同长度的数据块进行暗码运算成一个固定位的数值(通常为128位);其作用是让大容量信息在用数字签名软件签署私人密钥前被“压缩”成一种保密的格式。
    		SHA(Secure Hash Algorithm):安全散列算法,该算法的思想是接收一段明文,然后以一种不可逆的方式将它转换成一段通常更小的密文,也可以简单的理解为取一段输入码(称为预映射或信息),并把它们转换为长度较短、位数固定的输出序列即散列值(也称为信息摘要或信息认证代码)的过程。
    		MAC(Message Authentication Code):消息认证代码,是一种使用密钥的单向函数,可以用它们在系统上或用户之间认证文件或消息,常见的是HMAC(用于消息认证的密钥散列算法)。MAC是单向加密的一种延伸应用,用于实现网络通信中保证所传输数据的完整性机制。
    		CRC(Cyclic Redundancy Check):循环冗余校验码,CRC校验由于实现简单,检错能力强,被广泛使用在各种数据校验应用中,占用系统资源少,用软硬件都可实现,是进行数据传输差错检测地一种很好的手段。
    
    	5。单向加密工具:
    		md5sum
    		sha1sum,shaNsum...
    		openssl dgst
    
  • 相关阅读:
    SDUT 1299 最长上升子序列
    HDU 1754 I Hate It
    SDUT 2080 最长公共子序列问题
    HDU 1102 Constructing Roads HDU1863 畅通工程
    HDU 1166 敌兵布阵
    HDU 1874 畅通工程续
    准备翻译Windows 8 动手实验系列教程
    Windows 8 动手实验系列教程 简介
    一起学Windows phone7开发(十九. Windows phone7发布)
    一起学Windows phone7(十六. windows phone 7 developer tool RTM 发布)
  • 原文地址:https://www.cnblogs.com/shenxm/p/8448611.html
Copyright © 2011-2022 走看看