I need 2 simple encryption and decryption methods to encrypt a String a in an ecrypted String b using another String key as Encryption and Decryption key.
I have found this code that seems doing what I need
public class DesEncrypter {
Cipher ecipher;
Cipher dcipher;
DesEncrypter(SecretKey key) {
try {
ecipher = Cipher.getInstance("DES");
dcipher = Cipher.getInstance("DES");
ecipher.init(Cipher.ENCRYPT_MODE, key);
dcipher.init(Cipher.DECRYPT_MODE, key);
} catch (javax.crypto.NoSuchPaddingException e) {
} catch (java.security.NoSuchAlgorithmException e) {
} catch (java.security.InvalidKeyException e) {
}
}
public String encrypt(String str) {
try {
// Encode the string into bytes using utf-8
byte[] utf8 = str.getBytes("UTF8");
// Encrypt
byte[] enc = ecipher.doFinal(utf8);
// Encode bytes to base64 to get a string
return new sun.misc.BASE64Encoder().encode(enc);
} catch (javax.crypto.BadPaddingException e) {
} catch (IllegalBlockSizeException e) {
} catch (UnsupportedEncodingException e) {
} catch (java.io.IOException e) {
}
return null;
}
public String decrypt(String str) {
try {
// Decode base64 to get bytes
byte[] dec = new sun.misc.BASE64Decoder().decodeBuffer(str);
// Decrypt
byte[] utf8 = dcipher.doFinal(dec);
// Decode using utf-8
return new String(utf8, "UTF8");
} catch (javax.crypto.BadPaddingException e) {
} catch (IllegalBlockSizeException e) {
} catch (UnsupportedEncodingException e) {
} catch (java.io.IOException e) {
}
return null;
}
}
Unfortunately need a fix to works,
I get an error in
sun.misc.BASE64Encoder()
and in
sun.misc.BASE64Decoder()
that ask me to create a base64 encoder and decoder in sun.misc package
How to fix?
sun.misc.BASE64Encoderandsun.misc.BASE64Decoderdo not exist in the Android Java implementation. They are internal only in Oracle’s JDK, although you do have access, they are not guaranteed to be there.You can use the android.util.Base64 class to encode and decode base 64 in Android.
To encode, change:
to:
To decode, change:
to: