Hallo! ich habe hier ein paar Methoden die einen String via AES verschlüsseln.
Unter einem normalen Swing Projekt hat es funktioniert aber jetzt in einer Android Klasse steht dort, dass es die Methode BASE64.getDecoder() und ...getEncoder() nicht gibt.
Unter einem normalen Swing Projekt hat es funktioniert aber jetzt in einer Android Klasse steht dort, dass es die Methode BASE64.getDecoder() und ...getEncoder() nicht gibt.
Java:
// AES Ver- udn Entschlüsselung aus String
private static SecretKeySpec secretKey;
private static byte[] key;
//hashAlgo = "SHA-1"
//algo = "AES"
//sind weiter oben definiert.
public void setKey(String myKey)
{
MessageDigest sha = null;
try {
key = myKey.getBytes("UTF-8");
sha = MessageDigest.getInstance("SHA-1");
key = sha.digest(key);
key = Arrays.copyOf(key, 16);
secretKey = new SecretKeySpec(key, "AES"); }
catch (NoSuchAlgorithmException e) {
e.printStackTrace(); }
catch (UnsupportedEncodingException e) {
e.printStackTrace(); } }
public String encryptAES(String strToEncrypt, String secret)
{
try {
setKey(secret);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, secretKey);
return Base64.getEncoder().encodeToString(cipher.doFinal(strToEncrypt.getBytes("UTF-8")));
}
catch (Exception e)
{
System.out.println("Error while encrypting: " + e.toString());
}
return null;
}
public String decryptAES(String strToDecrypt, String secret) {
try {
setKey(secret);
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, secretKey);
return new String(cipher.doFinal(Base64.getDecoder().decode(strToDecrypt)));
}
catch (Exception e)
{
}
return null;
}