随笔分类 -  加解密&算法

摘要:一个比较简单的实现:一个三个类KeyGenerater生成公钥私钥对,Signaturer类使用私钥签名,SignProvider用公钥验证。公钥和私钥使用Base64加密Base64这个类也在博客里面public class KeyGenerater {private byte[] priKey;private byte[] pubKey;public void generater() {try {java.security.KeyPairGenerator keygen = java.security.KeyPairGenerator.getInstance("RSA" 阅读全文
posted @ 2013-01-31 17:57 jack_ou 阅读(16078) 评论(0) 推荐(0) 编辑
摘要:一说到数据的加密,常常会涉及到这几个单词:算法、原文、密文和密钥。通常,发送者把原文通过一个加密的算法,用密钥进行加密后将密文发送给接收者,然后接收者再用密钥对密文进行解密,得到原文。由于常用的加密算法都是公开的,所以,对原文的加密的关键,就是密钥了。对于这种加解密都使用同样的密钥的算法,我们称之为对称加密,对称加密的代表算法就是DES家族了。那么这种对称加密有什么缺陷呢?由于加解密使用相同的密钥,那么这个密钥最少要保存在两个地方,如果加密的数据要发给多人,那么就会有更多的人知道密钥,这大大增加了密钥泄露的风险;并且密钥需要由发送方传递给接收方,那么如何保证密钥的传递的安全,则成了另外一个头疼 阅读全文
posted @ 2013-01-31 17:51 jack_ou 阅读(1729) 评论(0) 推荐(0) 编辑
摘要:实现一对密钥对整个项目所有加密解密文件都适用的方法,采用先生成一对密钥.保存到xml文件中,以后获得私匙和公钥只需要从xml文件中取得就可以了. /** * 把成生的一对密钥保存到RSAKey.xml文件中 */ public void saveRSAKey() { try { SecureRandom sr = new SecureRandom(); KeyPairGenerator kg = KeyPairGenerator.getInstance(\"RSA\", new org.bouncycastle.jce.provider.BouncyCastleProvid 阅读全文
posted @ 2013-01-31 09:21 jack_ou 阅读(726) 评论(0) 推荐(0) 编辑
摘要:最近处理RSA算法,找了一些相关的资料和代码,整理了一下,汇总成这篇文章。 <一>基础RSA算法非常简单,概述如下:找两素数p和q取n=p*q取t=(p-1)*(q-1)取任何一个数e,要求满足e<t并且e与t互素(就是最大公因数为1)取d*e%t==1这样最终得到三个数: n d e设消息为数M 阅读全文
posted @ 2013-01-31 09:15 jack_ou 阅读(8851) 评论(3) 推荐(2) 编辑
摘要:javax.crypto.Cipher类提供加密和解密功能,该类是JCE框架的核心。一,与所有的引擎类一样,可以通过调用Cipher类中的getInstance静态工厂方法得到Cipher对象。public static Cipher getInstance(String transformation);public static Cipher getInstance(String transformation,String provider);参数transformation是一个字符串,它描述了由指定输入产生输出所进行的操作或操作集合。参数transformation总是包含密码学算法名称 阅读全文
posted @ 2013-01-31 00:16 jack_ou 阅读(16828) 评论(0) 推荐(2) 编辑
摘要:来源:http://blog.csdn.net/janronehoo/article/category/1152295如基本的单向加密算法: BASE64 严格地说,属于编码格式,而非加密算法MD5(Message Digest algorithm 5,信息摘要算法)SHA(Secure Hash Algorithm,安全散列算法)HMAC(Hash Message Authentication Code,散列消息鉴别码) 复杂的对称加密(DES、PBE)、非对称加密算法: DES(Data Encryption Standard,数据加密算法)PBE(Password-based encry 阅读全文
posted @ 2013-01-30 23:44 jack_ou 阅读(3742) 评论(2) 推荐(0) 编辑
摘要:MD5的全称是Message-Digest Algorithm 5,在90年代初由MIT的计算机科学实验室和RSA Data Security Inc发明,经MD2、MD3和MD4发展而来。MD5将任意长度的“字节串”变换成一个128bit的大整数,并且它是一个不可逆的字符串变换算法,换句话说就是,即使你看到源程序和算法描述,也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数。MD5的典型应用是对一段Message(字节串)产生fingerprint(指纹),以防止被“篡改”。举个例子,你将一段话写在一个叫 readme.tx 阅读全文
posted @ 2013-01-30 23:41 jack_ou 阅读(1409) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2012-12-20 23:26 jack_ou 阅读(1557) 评论(1) 推荐(0) 编辑
摘要:(一)java自带的加密和解密import sun.misc.BASE64Decoder;public class Base64Utils {public static String getBASE64(byte[] b) {String s = null;if (b != null) {s = new sun.misc.BASE64Encoder().encode(b);}return s;}public static byte[] getFromBASE64(String s) {byte[] b = null;if (s != null) {BASE64Decoder decoder = 阅读全文
posted @ 2012-09-18 16:38 jack_ou 阅读(8714) 评论(0) 推荐(0) 编辑