java cipher
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java cipher相关的知识,希望对你有一定的参考价值。
参考技术A java cipher是什么,让我们一起了解一下?cipher是在javax.crypto包下,构成了Java Cryptographic Extension (JCE) 框架的核心,Java的Cipher类提供了加密和解密的功能。
我们都知道,Cipher类是一个引擎类,它需要通过getInstance()工厂方法来实例化对象。那么该如何操作?
1、我们可以通过指定转换模式的方式获得实例化对象,方法如下所示:
// 返回实现指定转换的 Cipher对象
public static Cipher getInstance(String transformation)
2、也可以在制定转换模式的同时制定该转换模式的提供者,方法如下所示:
// 返回实现指定转换的 Cipher对象
public static Cipher getInstance(String transformation, Provider provider)
// 返回实现指定转换的 Cipher对象
public static Cipher getInstance(String transformation, String provider)
注意这里的参数String transformation,通过如下代码示例:
Cipher c = Cipher.getInstance("DES");
上述实例化操作是一种最为简单的实现,并没有考虑DES分组算法的工作模式和填充模式,可通过以下方式对其设定:
Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");
参数String transformation的格式是“算法/工作模式/填充模式”,不同的算法支持不同的工作模式以及填充模式。
另外,Java的Cipher类还提供了加密和解密的功能,那么JAVA是如何通过Cipher实现加密与解密的?
实战操作:具体代码如下 package com.bsd.yx; import java.security.Key; import java.security.Security; import java.text.SimpleDateFormat; import java.util.Date; import javax.crypto.Cipher; import com.ibm.model.cxf.Safety; /** * 加密与解密 * @author tanf * @date 2013-11-08 */ public class EncryptionDecryption /** * 默认密钥 */ private static String strDefaultKey = "tandaly201124335"; /** 加密工具 */ private static Cipher encryptCipher = null; /** 解密工具 */ private static Cipher decryptCipher = null; /** * 将byte数组转换为表示16进制值的字符串, 如:byte[]8,18转换为:0813, 和public static byte[] * hexStr2ByteArr(String strIn) 互为可逆的转换过程 * * @param arrB * 需要转换的byte数组 * @return 转换后的字符串 * @throws Exception * */ public static String byteArr2HexStr(byte[] arrB) throws Exception int iLen = arrB.length; // 每个byte用两个字符才能表示,所以字符串的长度是数组长度的两倍 StringBuffer sb = new StringBuffer(iLen * 2); for (int i = 0; i
以上是关于java cipher的主要内容,如果未能解决你的问题,请参考以下文章
异常: java.security.InvalidKeyException: Illegal key size