Stein
0
Ich habe da ein Problem mit Java und ich steh voll auf dem Schlauch:
Ich habe ein package aes_hash mit den Klassen test und aes_crypt:
aes_crypt
und hier ist die Problemklasse. Ich will damit einfach auf aes_crypt zugreifen und ich habe schon alles mögliche ausprobiert, aber ich hab immer wieder Fehlermeldungen dass er aes_crypt nicht kennt.
Ich compile immer mit
und aes_crypt.class und aes_crypt.java sind im selben Ordner. Kann mir da jemand ein wenig helfen, aus den Büchern oder sonst was werde ich nicht schlau. Ich mache das ganze mit Emacs.
mfg Stein
Ich habe ein package aes_hash mit den Klassen test und aes_crypt:
aes_crypt
Code:
package aes_hash;
import java.security.KeyFactory;
import java.io.*;
import javax.crypto.*;
import java.security.Key;
import javax.crypto.spec.SecretKeySpec;
import sun.misc.*;
public class aes_crypt
{
public static String padd_pass(String password) throws Exception{
if (password.length() == 16) {
return password;
}
else if(password.length() < 16){
password = password + "1";
while (password.length() < 16){
password = password + "0";
}
return password;
}
char[] passwd = new char[16];
password.getChars(0,15,passwd,0);
String re = new String(passwd);
System.out.println("Dass Passwort wurde auf " + re + " gekürzt.");
return re;
}
public static String aes_encrypt(String message, String password) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128); // 192 and 256 bits may not be available
// Generate the secret key specs.
SecretKey skey = kgen.generateKey();
byte[] raw = padd_pass(password).getBytes();
SecretKeySpec k = new SecretKeySpec(raw, "AES");
cipher.init(Cipher.ENCRYPT_MODE, k);
byte[] encrypted = cipher.doFinal(message.getBytes());
return new BASE64Encoder().encode(encrypted);
//return "Test";
}
public static String aes_decrypt(String crypted_message, String password) throws Exception {
Cipher cipher = Cipher.getInstance("AES");
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128);
byte[] raw = padd_pass(password).getBytes();
SecretKeySpec k = new SecretKeySpec(raw, "AES");
cipher.init(Cipher.DECRYPT_MODE, k);
byte[] decrypted = cipher.doFinal(new BASE64Decoder().decodeBuffer(crypted_message));
return new String(decrypted);
}
}
Code:
package aes_hash;
public class test
{
public static void main(String args[]){
String a = aes_encrypt("a","b");
}
}
Code:
javac test.java
mfg Stein