· 7 years ago · Jun 12, 2018, 06:26 AM
1public class TrippleDe {
2 // public static String ALGO = "DESede/CBC/PKCS7Padding";
3 private static String encryptionAlgo= "DESede/ECB/PKCS7Padding";
4 String aesEncryptionAlgorithm = "DESede";
5 private final String characterEncoding = "UTF-8";
6 private final String encryptionKey = "encryptKey";
7
8 public String _encrypt(String message) throws Exception {
9
10 Cipher cipher = Cipher.getInstance(encryptionAlgo);
11 cipher.init(Cipher.ENCRYPT_MODE, getSecreteKey(encryptionKey));
12
13 byte[] plainTextBytes = message.getBytes(characterEncoding);
14 byte[] buf = cipher.doFinal(plainTextBytes);
15 byte[] base64Bytes = android.util.Base64.encode(buf, android.util.Base64.DEFAULT);
16 String base64EncryptedString = new String(base64Bytes,characterEncoding);
17 Log.e("encrypted pass",base64EncryptedString);
18 return base64EncryptedString.replace("n","");
19 }
20
21 public String _decrypt(String encryptedText, String secretKey) throws Exception {
22
23 byte[] message = android.util.Base64.decode(encryptedText.getBytes(), android.util.Base64.DEFAULT);
24 Cipher decipher = Cipher.getInstance(encryptionAlgo);
25 decipher.init(Cipher.DECRYPT_MODE, getSecreteKey(secretKey));
26 byte[] plainText = decipher.doFinal(message);
27
28 return new String(plainText, characterEncoding);
29 }
30
31 private SecretKey getSecreteKey(String secretKey) throws Exception {
32 MessageDigest md = MessageDigest.getInstance("md5");
33 byte[] digestOfPassword = md.digest(secretKey.getBytes(characterEncoding));
34 byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
35 for (int j = 0, k = 16; j < 8;) {
36 keyBytes[k++] = keyBytes[j++];
37 }
38 SecretKey key = new SecretKeySpec(keyBytes, aesEncryptionAlgorithm);
39 return key;
40 }
41}
42
43import Foundation
44import IDZSwiftCommonCrypto
45
46class Encryption: NSObject {
47 var aesEncryption = "DESede"
48 var encryptionKey = "encryptKey"
49
50 func encrypt(message: String) -> String {
51 let key = arrayFrom(hexString: getSecreteKey(secreteKey: encryptionKey))
52 let plainText = String.init(utf8String: message.cString(using: String.Encoding.utf8)!)
53 let cryptor = Cryptor(operation:.encrypt, algorithm:.tripleDES, options:.PKCS7Padding, key:key, iv:Array<UInt8>())
54 let cipher = cryptor.update(string: plainText!)?.final()
55 let data = Data.init(bytes: cipher!)
56 return data.base64EncodedString(options: .endLineWithCarriageReturn)
57 }
58
59 func getSecreteKey(secreteKey: String) -> String {
60 let md5:Digest = Digest(algorithm: .md5)
61 md5.update(string: secreteKey)
62 let digest = md5.final()
63 return hexString(fromArray: digest)
64 }
65
66}