Encryption: When called: Encrypt_des16 ("2AF349243535BCD3", "1111111111111111");
public static string Encrypt_des16 (String str_in_data, String str_des_key)//data is hexadecimal {try { byte[] Shuju = new Byte[8]; Byte[] keys = new BYTE[8]; for (int i = 0; i < 8; i++) {Shuju[i] = Convert.tobyte (str_in_data. Substring (i * 2, 2), 16); Keys[i] = Convert.tobyte (str_des_key. Substring (i * 2, 2), 16); } DES desencrypt = new DESCryptoServiceProvider (); Desencrypt.mode = CIPHERMODE.ECB; Desencrypt.key = ASCIIEncoding.ASCII.GetBytes (Str_des_key); Desencrypt.key = keys; Byte[] Buffer; Buffer = Shuju;//asciiencoding.ascii.getbytes (Str_in_data); ICryptoTransform transForm = Desencrypt.createencryptor (); Byte[] R; R = Transform.transformfinalblock (Buffer, 0, buffer.length); String return_str = ""; foreach (Byte b in R) {return_str + = b.tostring ("X2"); } return_str = Return_str. Substring (0, 16); return return_str; } catch (Exception e) {throw e; } }
Decryption: Called When: Encrypt_des16 ("C47ec89b0a247a47", "1111111111111111");
DES decryption public static string Decrypt_des16 (String str_in_data, String str_des_key)//data and key is hexadecimal { byte[] Shuju = new Byte[8]; Byte[] keys = new BYTE[8]; for (int i = 0; i < 8; i++) {Shuju[i] = Convert.tobyte (str_in_data. Substring (i * 2, 2), 16); Keys[i] = Convert.tobyte (str_des_key. Substring (i * 2, 2), 16); } DES desdecrypt = new DESCryptoServiceProvider (); Desdecrypt.mode = CIPHERMODE.ECB; Desdecrypt.key = keys; desdecrypt.padding = System.Security.Cryptography.PaddingMode.None; byte[] Buffer = Shuju; ICryptoTransform transForm = Desdecrypt.createdecryptor (); Byte[] R; R = Transform.transformfinalblock (Buffer, 0, buffer.length); String return_str = ""; foreach (Byte b in R) {return_str + = b.tostring ("X2"); } return RETURN_STR; }
C # DES (ECB mode) encryption decryption-single-fold length