· 7 years ago · Sep 12, 2018, 06:52 PM
1Cipher / 3DES / CFB / Java and PHP
2$montant = "500";
3$message_crypte = mcrypt_encrypt(MCRYPT_3DES, "N4y1FRDRJ7wn7eJNnWaahCIS", $montant, ,CRYPT_MODE_CFB, "NCNPJDcR");
4$montant = base64_encode($message_crypte);
5
6public class CryptData {
7private KeySpec keySpec;
8private SecretKey key;
9private IvParameterSpec iv;
10
11public CryptData(String keyString, String ivString) {
12 try {
13 final MessageDigest md = MessageDigest.getInstance("md5");
14
15 final byte[] digestOfPassword = md.digest(Base64
16 .decodeBase64(keyString.getBytes("ISO-8859-1")));
17
18 final byte[] keyBytes = Arrays.copyOf(digestOfPassword, 24);
19 for (int j = 0, k = 16; j < 8;) {
20 keyBytes[k++] = keyBytes[j++];
21 }
22
23 //keySpec = new DESedeKeySpec(keyBytes);
24 keySpec = new DESedeKeySpec(keyString.getBytes());
25
26 key = SecretKeyFactory.getInstance("DESede")
27 .generateSecret(keySpec);
28
29 iv = new IvParameterSpec(ivString.getBytes());
30 } catch (Exception e) {
31 e.printStackTrace();
32 }
33}
34
35public String encrypt(String value) {
36 try {
37 Cipher ecipher = Cipher.getInstance("DESede/CFB/NoPadding");
38
39 //"SunJCE");
40 ecipher.init(Cipher.ENCRYPT_MODE, key, iv);
41
42 if (value == null)
43 return null;
44
45 // Encode the string into bytes using utf-8
46 byte[] valeur = value.getBytes("ISO-8859-1");
47 //byte[] utf8 = value.getBytes();
48
49 // Encrypt
50 byte[] enc = ecipher.doFinal(valeur);
51
52 // Encode bytes to base64 to get a string
53 return new String(Base64.encodeBase64(enc), "ISO-8859-1");
54 } catch (Exception e) {
55 e.printStackTrace();
56 }
57 return null;
58}