文字列からURLセーフなbase64でエンコードされたハッシュを生成するJavaコードベースがあり、Linuxコマンドラインツールでこれが可能かどうか/どのように可能か疑問に思っています。私がここで行っていることの問題は、文字セット/エンコーディング、または文字列をバイト配列に変換することであると推測しています。Javaコード:
MessageDigest md = MessageDigest.getInstance("SHA-256");
byte[] digest = md.digest("testString".getBytes());
// ^^ this is where the difference is?
String b64url = Base64.encodeBase64URLSafeString(digest);
// b64url: Ss8LOdnEdmcJo2ifVTrAGrVQVF_6RUTfwLLOqC-6AqM
コマンドライン:
echo testString | sha256sum | cut -d" " -f1 | base64
# NDgxOGEyY2JkODYwOTY1NjJkODFmYzIwNmQ3ZTYyNWVlNGFjMTU5MmViNTc0MjQwMDQ4OTIzOTBl
# MDQzZTNlYwo=
CLIツールを使用してbase64でエンコードされたsha256を生成することは可能ですか?