数字签名和数字证书
、加密的基础知识加密的基础概念明文- plaintext:被隐蔽的消息称作明文。密文- ciphertext:隐蔽后的消息称作密文·加密- encryption:将明文变换成密文的过程称作加密解密- decrypυtion:由密文恢复出原明文的过程称作解密加密算法:对明文进行加密时采用的算法解密算法:对密文进行解密时采用算法加密秘钥- encryption key和解密秘钥- decryption key:加密算法和解密算法的操作通常是在一组密钥key的控制下进行的。分别称为加密密钥和解密密钥中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识加密的分类单向加密(信息摘要)对称加密加密的类型(加密解密秘双向加密钥相同)(加密解密)非对称加密(加密解密秘钥不同)中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识单向加密(信息摘要通过算法将任意长度明文生成定长的密文,不可逆,又叫信息摘要( Message digest)。主要作用是保证信息的完整性信息摘要是一个唯一对应一个消息或文本的固定长度的值,它由一个单向Hash加密函数对消息进行作用而产生。信息摘要的主要算法包括M2、M5、SHA1、SHA256等。MD5: Message digest algorithm MD5(中文名为消息摘要算法第五版)为计算机安全领域广泛使用的一种散列函数,用以提供消息的完整性保护中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识单向加密(信息摘要典型应用是对一段信息( Message)产生信息致性验证摘要( Message- Digest),以防止被篡改。般用来作程序或者文件的验证主要用途主要还是使用了信息摘要功能的防篡改的功能,数字证书配合第三方机构进行数字签名。·MD5还广泛用于操作系统的登陆认证上。安全访问认证如在Unix系统中用户的密码是以MD5(或其它类似的算法)经Hash运算后存储在文件系统中。中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识单向加密(信息摘要Java实现(MD5算法为例):涉及主要类:java security Message Digest:摘要生成类简单实现:String a=abcMessage Digest md=MessageDigest getInstance ( MD5");byte[ bi=a getBytes(;md update(bi)System. out. println("字符"+a+",摘要:+new String(md digest()中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识双向加密:对称加密双向加密中通过明文加密后形成的密文,可以通过算法还原成明文,加密是可逆的采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。算法是一组规则,规定如何进行加密和解密。因此对称式加密本身不是安全的。常用的对称加密有:DES、IDEA、RC2、RC4、SKI門JACK、RC5、AES算法等。IDEA: International Data Encryption Algorithm中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识双向加密:对称加密主要用途信息传送·消息传递加密安全访问·用户密码认证优点:算法公开、计算量小、加密速度快、加密效率高。缺点:交易双方都使用同样钥匙,安全性得不到保证。无法进行身份认证。中科软科技www.sinosoft.com.cnSinosoft Co, Ltd、加密的基础知识双向加密:对称加密Java实现(DES算法为例涉及主要类:javax. crypto Key Generator:KEY生成器avax. crypto SecretKey:密钥javax. crypto Cipher:加密解密类简单实现:String b=“def;Key Generator key= Key Generator getInstance(DES")/KEY生成器SecretKey key=keyg. generateKey()/密钥Cipher c= Cipher. getInstance(DES')加密解密类c inite( Cipher ENCRYPT MODE,key)/加密或者解密初始化String enstr= new String(c. domina(b. getBytes();∥加密System. out. println(“字符串:"+b+“加密了…:"+ enstr);Cipher d=Cipher getInstance( DES)d init( Cipher: DECRYPT MODE,key)/解密初始化System. out. printIn("解密了…"+中科软科技new String(d. doFinal(c. doFinal (b getBytes);www.sinosoft.com.cnSinosoft Co, Ltd
用户评论