-1
なぜ私の文字列がmd5転送後に出力sthには多くの読み込み不能な文字が含まれているのだろうか? 。等。この場合、下のコードは kh{ j p%outputsを出力します。md5出力の疑問符文字
import java.nio.charset.StandardCharsets;
import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;
public class Test{
public static void main(String args[]){
try{
MessageDigest md = MessageDigest.getInstance("MD5");
String ssmd5 = "sp00";
String ShipmentID = new String(md.digest(ssmd5.getBytes()), StandardCharsets.UTF_8);
System.out.println(ShipmentID);
}catch(NoSuchAlgorithmException e){
System.out.println("I'm sorry, but MD5 is not a valid message digest algorithm");
}
}
}
'バイト[]'を返しMessageDigest.digest'。あなたはそれを論理的に 'char []'である 'String'に変換しようとしています。 'char'と' byte'は同じものではありません。読み込み可能な文字列として印刷したい場合、base64はバイトをエンコードします(またはバイトを16進数で表示します)。 –