どのように私はJavaで暗号化(SHA1PRNGとAES)の結果を確認することができますか?

ジン・リー:

私は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);
}

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=207009&siteId=1