-2

上記のコードを使用して文字列を暗号化しました。

public String encrypt(String generatedKey)
    {
            try {
                MessageDigest md = MessageDigest.getInstance("SHA");
                md.update(generatedKey.getBytes("UTF-8"));
                byte digest[] = md.digest();
                return (new BASE64Encoder()).encode(digest);
            }
            catch (Exception e) {
                return null;
            }

    }

同様に、上記の生成されたコードを解読するためのコードが必要です。これどうやってするの?

4

3 に答える 3

5

SHA はダイジェスト アルゴリズムであり、暗号化アルゴリズムではありません。ダイジェスト値は復号化できません。それが彼らが安全である理由です。2 つの異なる入力が同じダイジェスト値を与える場合があります。しかし、それは非常に小さな可能性です。sha256 の場合は 1/(2^256) です。

ダイジェスト アルゴリズムの出力の長さは一定です。SHA256 の場合、入力長、1 ビットまたは 100 Gbs に関係なく、常に 256 ビットです。256 ビットのダイジェスト値を復号化して、元の 1Gb 入力を戻すことができれば、圧縮アルゴリズムは必要ありません :)

于 2013-04-26T08:16:50.737 に答える