Let's start with a C # version:
Public class deshelper {// <summary> // DES encryption algorithm /// </Summary> /// <Param name = "encryptstring"> string to be encrypted </ param> /// <Param name = "skey"> Add Password Key </param> /// <returns> the encrypted result is returned correctly, error returned source string </returns> Public static string todesencrypt (string encryptstring, string skey) {try {byte [] keybytes = encoding. utf8.getbytes (skey); byte [] keyiv = keybytes; byte [] inputbytearray = encoding. utf8.getbytes (encryptstring); descryptoserviceprovider desprovider = new descryptoserviceprovider (); // The default java mode is ECB, pkcs5padding; C # The default CBC mode, pkcs7padding so here we use the ECB method desprovider by default. mode = ciphermode. ECB; memorystream memstream = new memorystream (); cryptostream crypstream = new cryptostream (memstream, desprovider. createencryptor (keybytes, keyiv), cryptostreammode. write); crypstream. write (inputbytearray, 0, inputbytearray. length); crypstream. flushfinalblock (); Return convert. tobase64string (memstream. toarray ();} catch {return encryptstring ;}} /// <summary> // des decryption algorithm /// </Summary> /// <Param name = "decryptstring"> string to be decrypted </param> // /<Param name = "skey"> Encrypted Key </param> // <returns> returns the encrypted result correctly, error returned source string </returns> Public static string todesdecrypt (string decryptstring, string skey) {byte [] keybytes = encoding. utf8.getbytes (skey); byte [] keyiv = keybytes; byte [] inputbytearray = convert. frombase64string (decryptstring); descryptoserviceprovider desprovider = new descryptoserviceprovider (); // The default java mode is ECB, pkcs5padding; C # The default CBC mode, pkcs7padding so here we use the ECB method desprovider by default. mode = ciphermode. ECB; memorystream memstream = new memorystream (); cryptostream crypstream = new cryptostream (memstream, desprovider. createdecryptor (keybytes, keyiv), cryptostreammode. write); crypstream. write (inputbytearray, 0, inputbytearray. length); crypstream. flushfinalblock (); Return encoding. default. getstring (memstream. toarray ());}}
Another Java version
public class DESHelper {private byte[] desKey;public DES(String desKey) {this.desKey = desKey.getBytes();}public byte[] desEncrypt(byte[] plainText) throws Exception {SecureRandom sr = new SecureRandom();byte rawKeyData[] = desKey;DESKeySpec dks = new DESKeySpec(rawKeyData);SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(dks);Cipher cipher = Cipher.getInstance("DES");cipher.init(Cipher.ENCRYPT_MODE, key, sr);byte data[] = plainText;byte encryptedData[] = cipher.doFinal(data);return encryptedData;}public byte[] desDecrypt(byte[] encryptText) throws Exception {SecureRandom sr = new SecureRandom();byte rawKeyData[] = desKey;DESKeySpec dks = new DESKeySpec(rawKeyData);SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");SecretKey key = keyFactory.generateSecret(dks);Cipher cipher = Cipher.getInstance("DES");cipher.init(Cipher.DECRYPT_MODE, key, sr);byte encryptedData[] = encryptText;byte decryptedData[] = cipher.doFinal(encryptedData);return decryptedData;}public String encrypt(String input) throws Exception {return base64Encode(desEncrypt(input.getBytes()));}public String decrypt(String input) throws Exception {byte[] result = base64Decode(input);return new String(desDecrypt(result));}public static String base64Encode(byte[] s) {if (s == null)return null;BASE64Encoder b = new sun.misc.BASE64Encoder();return b.encode(s);}public static byte[] base64Decode(String s) throws IOException {if (s == null)return null;BASE64Decoder decoder = new BASE64Decoder();byte[] b = decoder.decodeBuffer(s);return b;}}