ジン・リー:
私はSHA1PRNGとAESアルゴリズムを使用して暗号化データへのメソッドを持つクラスを作りました。
public String encrypt(String str, String pw) throws Exception{
byte[] bytes = pw.getBytes();
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(bytes);
KeyGenerator kgen = KeyGenerator.getInstance("AES");
kgen.init(128,sr);
SecretKey skey = kgen.generateKey();
SecretKeySpec skeySpec = new SecretKeySpec(skey.getEncoded(),"AES");
Cipher c = Cipher.getInstance("AES");
c.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = c.doFinal(str.getBytes());
return Hex.encodeHexString(encrypted);
}
私は私のメインの中で、このメソッドを使用していました。
public static void main(String[] args) throws Exception{
Encrytion enc = new Encrytion(); //my class name has a typo :(
enc.encrypt("abcde", "abcdfg");
System.out.println(enc);
}
私の結果は、
com.dsmentoring.kmi.Encrytion@34340fab
ちょうど私のパッケージ名+クラス名+およびいくつかの数(私はこれを推測している実際のデータへの参照アドレスであります?)
私はこのような「a13efx34123fdv .......」のような私の暗号化の結果を見てみたいです。私は私のメインメソッドに追加するには何が必要ですか?何かアドバイス?
Kraylog:
あなたは、印刷しているEncryption
オブジェクトの代わりに、関数呼び出しの結果を。あなたは代わりにこれを行うことができます:
public static void main(String[] args) throws Exception{
Encrytion enc = new Encrytion(); //my class name has a typo :(
String result = enc.encrypt("abcde", "abcdfg");
System.out.println(result);
}