-2
public static byte[] createHash( String stringToHash ) throws UnsupportedEncodingException {

    MessageDigest digestor;

    byte[] byteInput = null;

    try {
        digestor = MessageDigest.getInstance("SHA-1");
        digestor.reset();
        byteInput = digestor.digest( stringToHash.getBytes("UTF-8") );
    } catch( NoSuchAlgorithmException e ){};

    return byteInput;

}

だから私は文字列を暗号化する非常に単純な方法を作ろうとしています.

問題は、この情報をファイル/データベースに保存したいということです(情報を取得またはデータベースに挿入する方法を尋ねていないので、これは本当に無関係です)。テキストファイルにソルトなしで非常に単純に保存していたとします。バイト配列をテキストファイルに書き込むにはどうすればよいですか? すべてのバイトをファイルにスローする単一の for ループを使用しますか? クラスを使用しようとすると、使用する文字列に関係なく、同じバイト配列が得られるためですか? もう一度、私の完全な無知を許してください。しかし、バイト配列をハッシュされた文字列にフォーマットして、ログイン時にユーザーのパスワードを簡単に暗号化し、2 つの文字列を互いに比較するにはどうすればよいでしょうか?

傲慢なコメントなどがある場合は、私の投稿に完全に回答することを控えてください。

ありがとう!

4

1 に答える 1

2

バイト配列を文字列として格納する場合は、Base64を使用してエンコードします。後で文字列を読み取るときに、バイト配列にデコードします。(これは、たとえば、URL でバイト配列を送信する場合にも役立ちます。結果の文字列は、元のバイト配列よりも約 33% 大きくなることに注意してください)

バイト配列をファイルに書き込むだけの場合は、FileOutputStream#write(byte[] b)を使用します

于 2013-04-25T19:52:53.043 に答える