java代碼示例: /* * key : 密鑰Key,key的長度必須大於等於 3*8 = 24 位哈 * iv : 初始化向量,增強隨機性,長度一般爲8的倍數位 * str : 需要加解密的字符串 * cipherType : 實例化Cipher對象類型, "DESede/CBC/PKCS5Padding" 加密算法名稱/分組加密模式/分組的填充方式 * keySpex : 實例化密鑰生成類型 ,"DESede" 爲3DES算法 * */ private String encrypt(byte[] key, byte[] iv, String str,String cipherType,String keySpec) throws Exception { Cipher cipher = initCipher(Cipher.ENCRYPT_MODE,key,iv,cipherType,keySpec); // 加密結果的byte數組使用Base64轉換爲字符串 return (new BASE64Encoder()).encode(cipher.doFinal(str.getBytes(StandardCharsets.UTF_8))); } private String decrypt(byte[] key, byte[] iv, String str,String cipherType,String keySpec) throws Exception { Cipher cipher = initCipher(Cipher.DECRYPT_MODE,key,iv,cipherType,keySpec); return new String(cipher.doFinal((new BASE64Decoder()).decodeBuffer(str))); } public static Cipher initCipher(int type, byte[] key, byte[] iv, String cipherType,String keySpec) { try { SecureRandom sr = new SecureRandom(); DESedeKeySpec dks = new DESedeKeySpec(key);// 生成24位密鑰 SecretKeyFactory keyFactory = SecretKeyFactory.getInstance(keySpec);// 實例化密鑰生成器 SecretKey secureKey = keyFactory.generateSecret(dks); IvParameterSpec ips = new IvParameterSpec(iv); Cipher cipher = Cipher.getInstance(cipherType); cipher.init(type, secureKey, ips, sr); return cipher; } catch (Exception e) { e.printStackTrace(); return null; } }
DES加密
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.