1

ファイルシステム (ext3、fat、ntfs など) のパスの一部として SHA-256-'encrypted' 文字列を使用する必要があります。

Base64 でエンコードしようとしましたが、Base64 でエンコードされた文字列に「/」、「\」、またはその他の無効な文字が含まれている可能性があるため、すべての場合に機能するとは限りません。

SHA-256-'encrypted'-string のファイル システムで安全な名前を取得する (簡単な) 方法はありますか? 考えられるすべての無効な文字に対して String.replaceAll() を使用するのは好きではありません。

助けてくれてありがとう

4

2 に答える 2

1

のようなものを試してください

https://gist.github.com/avilches/750151

import java.security.*;

public static String hash256(String data) throws NoSuchAlgorithmException {
    MessageDigest md = MessageDigest.getInstance("SHA-256");
    md.update(data.getBytes());
    return bytesToHex(md.digest());
}

public static String bytesToHex(byte[] bytes) {
    StringBuffer result = new StringBuffer();
    for (byte byt : bytes) result.append(Integer.toString((byt & 0xff) + 0x100, 16).substring(1));
    return result.toString();
}
于 2013-07-22T13:10:43.960 に答える