转载链接:http://www.open-open.com/lib/view/open1392185662160.html
package com.example.decript; import java.io.UnsupportedEncodingException; import java.security.InvalidKeyException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; import java.security.SecureRandom; import javax.crypto.BadPaddingException; import javax.crypto.Cipher; import javax.crypto.IllegalBlockSizeException; import javax.crypto.KeyGenerator; import javax.crypto.NoSuchPaddingException; import javax.crypto.SecretKey; import javax.crypto.spec.SecretKeySpec; public class DecriptTest { public static String SHA1(String decript) { try { MessageDigest digest = java.security.MessageDigest .getInstance("SHA-1"); digest.update(decript.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); // 字节数组转换为 十六进制 数 for (int i = 0; i < messageDigest.length; i++) { String shaHex = Integer.toHexString(messageDigest[i] & 0xFF); if (shaHex.length() < 2) { hexString.append(0); } hexString.append(shaHex); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } public static String SHA(String decript) { try { MessageDigest digest = java.security.MessageDigest .getInstance("SHA"); digest.update(decript.getBytes()); byte messageDigest[] = digest.digest(); // Create Hex String StringBuffer hexString = new StringBuffer(); // 字节数组转换为 十六进制 数 for (int i = 0; i < messageDigest.length; i++) { String shaHex = Integer.toHexString(messageDigest[i] & 0xFF); if (shaHex.length() < 2) { hexString.append(0); } hexString.append(shaHex); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } public static String MD5(String input) { try { // 获得MD5摘要算法的 MessageDigest 对象 MessageDigest mdInst = MessageDigest.getInstance("MD5"); // 使用指定的字节更新摘要 mdInst.update(input.getBytes()); // 获得密文 byte[] md = mdInst.digest(); // 把密文转换成十六进制的字符串形式 StringBuffer hexString = new StringBuffer(); // 字节数组转换为 十六进制 数 for (int i = 0; i < md.length; i++) { String shaHex = Integer.toHexString(md[i] & 0xFF); if (shaHex.length() < 2) { hexString.append(0); } hexString.append(shaHex); } return hexString.toString(); } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } return ""; } /** * 加密 * * @param content * 需要加密的内容 * @param password * 加密密码 * @return */ public static byte[] encryptAES(String content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(password.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES");// 创建密码器 byte[] byteContent = content.getBytes("utf-8"); cipher.init(Cipher.ENCRYPT_MODE, key);// 初始化 byte[] result = cipher.doFinal(byteContent); return result; // 加密 } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; } /** * 解密 * * @param content * 待解密内容 * @param password * 解密密钥 * @return */ public static byte[] decryptAES(byte[] content, String password) { try { KeyGenerator kgen = KeyGenerator.getInstance("AES"); kgen.init(128, new SecureRandom(password.getBytes())); SecretKey secretKey = kgen.generateKey(); byte[] enCodeFormat = secretKey.getEncoded(); SecretKeySpec key = new SecretKeySpec(enCodeFormat, "AES"); Cipher cipher = Cipher.getInstance("AES");// 创建密码器 cipher.init(Cipher.DECRYPT_MODE, key);// 初始化 byte[] result = cipher.doFinal(content); return result; // 加密 } catch (NoSuchAlgorithmException e) { e.printStackTrace(); } catch (NoSuchPaddingException e) { e.printStackTrace(); } catch (InvalidKeyException e) { e.printStackTrace(); } catch (IllegalBlockSizeException e) { e.printStackTrace(); } catch (BadPaddingException e) { e.printStackTrace(); } return null; } /** * BASE64解密 * * @param key * @return * @throws Exception */ public static String decryptBASE64(String key) { return ""; } /** * BASE64加密 * * @param key * @return * @throws Exception */ public static String encryptBASE64(String key) { return ""; } }
相关推荐
java实现SHA1、SHA、MD5、AES加密、AES解密、BASE64解密、BASE64加密,以及apache BASE64 jar和源码
java关于加密的算法demo代码(Base64加密\数字签名\对称加密算法\非对称加密算法\消息摘要算法) JAVA安全实现三种方式: 1.JDK 2.Commons Codec 3.Bouncy Castle 一。非对称加密算法: 1.DH 2.RSA 3.ELGamal 二。...
Delphi加密算法集,包括了Delphi AES DES MD5 RSA BASE64 2DES 3DES Blowfish CRC32-Static SHA等 常用的加密算法用法实例,比较不错的Delphi加密实例代码了,浅显易懂而且实用的常见加密算法实例,包括字符串和文件...
md5,aes,des,des3,rsa,sha,base64加密解密实例,含有所需jar包,注释详细,导入项目直接可用。
所以当时在cryptopp的基础上做了一些封装,并且将RSA,AES,SHA1,RSA-SHA1 Sign分离成独立的类,并且添加了Base16和Base64编码算法,使用这几个加密算法,几乎可以解决一般项目对通信安全的需要。 Java部分使用了JDK...
java_security JAVA安全实现三种方式: ...1.MD5 2.SHA 3.MAC 四。数字签名:JDK实现 com.timliu.security.signature 1.RSA 2.DSA 3.ECDSA 五。对称加密算法:com.timliu.security.symmetric_encryption 1
Delphi加密算法大全2DES_3DES_3DES3_AES_BASE64_BLOWFISH_CRC_DES_MD5_RSA_SHA
支持摘要算法:SM3、SHA-1、SHA-256、SHA-512 支持多种MAC算法及HMAC算法 支持DUKPT 根据IPEK生成子密钥功能 具有丰富的数据转换功能, 包括Base64编码解码, UTF8和Unicode转化, CRC32, 异或和校验, 等等。 工具...
PYG 密码学综合工具、支持RSA、DES、AES、SHA、Base64、CAC32、MD5、TEA、FILEHASH、GOST、RC、等40种加密算法
Delphi_d7加密算法大全,附带详细使用案例,内涵常见加密算法 MD5,base64,crc32,des,aes,Blowfish,rsa,sha 等算法样例
Java加密技术(一)——BASE64与单向加密算法MD5&SHA&MAC Java加密技术(二)——对称加密算法DES&AES Java加密技术(三)——PBE算法 Java加密技术(四)——非对称加密算法RSA Java加密技术(五)——非对称加密...
一个包含MD5.DES3,DES,AES,BASE64,SHA等常见的7种加密算法,可以直接下载集成到项目里面
Vive.Crypto(Vive.Crypto对各种常用的加密算法进行封装,有 Base64、对称加密(DES、3DES、AES、SM4)、非对称加密(RSA、SM2)、Hash(MD4、MD5、HMAC、HMAC-MD5、HMAC-SHA1、HMAC-SHA256、HMAC-SHA384、HMAC-SHA...
常用的加密算法 常用的加密算法:MD5 SHA1 DES AES Base64
常见的加密算法实现--Java语言编写,花费一个多月认真整理出来的可直接运行的...AES、BASE4、DES、DH、HMAC、MD、PBE、SHA 这些算法可以直接运用到实际项目中,希望对您的实际工作和学习有帮助,喜欢的点个赞呗,谢谢。
基于Base64,MD5,SHA,Hmac,DES,AES,RSA信息加密的设计与实现。 实现Base64对于文字的加密和解密。 实现MD5对于文字的校验。 实现SHA1,SHA256,SHA384,SHA512对于文字的加密。 实现HmacMD5,HmacSHA1,HmacSHA256,...
包含Base64 ...包含摘要算法:MD2,MD4,MD5,SHA1,SHA2(SHA-224,SHA-256,SHA-384,SHA-512) 数字签名算法:RSA,DSA,ECDSA 详情请查看:http://blog.csdn.net/baidu_34012226/article/details/53331147
包含了几乎所有常见加密算法的实现,包括RC4、AES、DES、3DES;RSA;SHA1、MD4、MD5;BASE64,还有其他算法。
算法模式:ECB(Electronic Code Book,电子密码本) 模式 密钥长度:128位 补码方式:PKCS5Padding 加密结果编码方式:base64 delphi 7实现,经测试加密、解密正确,与在线网站加密、解密结果一致!
JavaSecurity 使用摘要算法 Base64 MD SHA MAC对称加密 DES AES PBE非对称加密算法 DH RSA ElGamal