Hi,
ich habe Probleme beim verschlüsseln von Strings. Irgendwie funktioniert das mit dem Schlüssel nicht wie gewollt. Könnt ihr den Fehler erkennen?
Java
//Test Crypt c=new Crypt("xxxx"); String s="Test"; Log.v(null, s); s=c.encrypt(s); Log.v(null, s); s=c.decrypt(s); Log.v(null, s);
Java
package com.example.securekeystorage;
import javax.crypto.Cipher;import javax.crypto.spec.SecretKeySpec;
public class Crypt { private String password; public Crypt(String password){this.password=password; } public String encrypt(String text){ String val=null; try{ SecretKeySpec sKeySpeck=new SecretKeySpec(this.password.getBytes(), "AES"); Cipher cipher=Cipher.getInstance("AES"); cipher.init(Cipher.ENCRYPT_MODE, sKeySpeck); byte []encrypted=cipher.doFinal(text.getBytes()); val=encrypted.toString(); }catch(Exception ex){ ex.printStackTrace(); } return val; }
public String decrypt(String encryptedText){ String val=null; try{ SecretKeySpec sKeySpeck=new SecretKeySpec(this.password.getBytes(), "AES"); Cipher cipher=Cipher.getInstance("AES"); cipher.init(Cipher.DECRYPT_MODE, sKeySpeck); byte [] decrypted=cipher.doFinal(encryptedText.getBytes()); val=decrypted.toString(); }catch(Exception ex){ ex.printStackTrace(); } return val; }
public void setPassword(String password){ this.password=password; }
public String getPassword(){ return this.password; }
}