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?以上就是小編今天的分享了,希望可以幫助到大家。