3des演算法加密

2021-09-25 16:52:50 字數 1689 閱讀 2148

實現的原理

public class encryption ;

/*** 執行3des加密

* @param secretkey 秘鑰

* @param datastring 明文

* @return base64編碼文字

*/public static string encryptdes(string secretkey,string datastring) catch (exception ex)

return "";

}/**

* 3des解密

* @param secretkey 秘鑰

* @param decryptstring base64編碼文字

* @return 明文

*/public static string decryptdes(string secretkey,string decryptstring) catch (exception ex)

return "";

}public static void main(string args)

}

裡面的base64util是自己寫的編碼類,**如下:

public class base64util ;

private static byte base64decodechars = new byte ;

private base64util()

/*** 將位元組陣列編碼為字串

** @param data

*/public static string encode(byte data)

b2 = data[i++] & 0xff;

if (i == len)

b3 = data[i++] & 0xff;

}return sb.tostring();

}/**

* 解碼

** @param str

*/public static byte decode(string str) throws exception while (i < len && b1 == -1);

if (b1 == -1)

/* b2 */

do while (i < len && b2 == -1);

if (b2 == -1)

buf.write((b1 << 2) | ((b2 & 0x30) >>> 4));

/* b3 */

do b3 = base64decodechars[b3];

} while (i < len && b3 == -1);

if (b3 == -1)

buf.write(((b2 & 0x0f) << 4) | ((b3 & 0x3c) >>> 2));

/* b4 */

do b4 = base64decodechars[b4];

} while (i < len && b4 == -1);

if (b4 == -1)

buf.write(((b3 & 0x03) << 6) | b4);

}return buf.tobytearray();

}}

測試結果:

wr/xa+1pn1e8vkwedr//dw==

helloworld

3DES加密演算法

des是乙個經典的對稱加密演算法,但也缺陷明顯,即56位的金鑰安全性不足,已被證實可以在短時間內破解。為解決此問題,出現了3des,也稱triple des,3des為des向aes過渡的加密演算法,它使用3條56位的金鑰對資料進行三次加密。為了相容普通的des,3des並沒有直接使用 加密 加密 ...

Des與3Des加密解密

des和3des演算法 public class des b ret.tostring return ret.tostring 3des加密 金鑰不能每8位重複,例如 123456781234567812345678,如果這樣則演算法退化為des,c 會檢測,不能使用 明文 金鑰 public st...

iOS DES加密與3DES加密

最近專案中遇到了加解密的問題,然後翻閱了相關資料,成功搞定。現在將這些知識點總結一下,一是為了以後複習,二是為了給大家提供參考。1.先來說說des操作,定義我這裡就不敘述了,網上一堆一堆的。接下來說一下使用時應該注意的幾點。首先,大家要分清key 金鑰 data 待運算元據 跟mode 加密模式 其...