SHA 编码错误 "UnsupportedEncodingException: UTF8"
SHA Encoding Error "UnsupportedEncodingException: UTF8"
下面是我的 JAVA 代码,我正在尝试将字符串编码为 SHA1 编码,但出现以下错误。
java.io.UnsupportedEncodingException: UTF8
at java.lang.StringCoding.encode(StringCoding.java:341)
at java.lang.String.getBytes(String.java:918)
at sample.SHAEncoding.getSHA(SHAEncoding.java:20)
at sample.SHAEncoding.main(SHAEncoding.java:34)
import java.security.MessageDigest;
public class SHAEncoding {
private static char[] hexits = "0123456789ABCDEF".toCharArray();
public static String getSHA(String data) throws Exception {
MessageDigest md = null;
byte[] ba = null;
md = MessageDigest.getInstance("SHA");
md.update(data.getBytes("UTF8"));
ba = md.digest();
StringBuffer sb = new StringBuffer(ba.length * 2);
for (int i = 0; i < ba.length; i++) {
sb.append(hexits[(((int) ba[i] & 0xFF) / 16) & 0x0F]);
sb.append(hexits[((int) ba[i] & 0xFF) % 16]);
}
return sb.toString();
}
public static void main(String args[]){
String SessionID = "2K6VB0UAZV33C5KTKXDV";
try{
String PIN = getSHA(SessionID + getSHA("xyz"+"1234").toLowerCase()).toUpperCase();
System.out.println("PIN ===>>> "+PIN);
}catch(Exception e){
e.printStackTrace();
}
}
}
通过将 "UTF8" 替换为 "UTF-8" 解决了问题。
谢谢大家的回复。
下面是我的 JAVA 代码,我正在尝试将字符串编码为 SHA1 编码,但出现以下错误。
java.io.UnsupportedEncodingException: UTF8
at java.lang.StringCoding.encode(StringCoding.java:341) at java.lang.String.getBytes(String.java:918) at sample.SHAEncoding.getSHA(SHAEncoding.java:20) at sample.SHAEncoding.main(SHAEncoding.java:34)
import java.security.MessageDigest;
public class SHAEncoding {
private static char[] hexits = "0123456789ABCDEF".toCharArray();
public static String getSHA(String data) throws Exception {
MessageDigest md = null;
byte[] ba = null;
md = MessageDigest.getInstance("SHA");
md.update(data.getBytes("UTF8"));
ba = md.digest();
StringBuffer sb = new StringBuffer(ba.length * 2);
for (int i = 0; i < ba.length; i++) {
sb.append(hexits[(((int) ba[i] & 0xFF) / 16) & 0x0F]);
sb.append(hexits[((int) ba[i] & 0xFF) % 16]);
}
return sb.toString();
}
public static void main(String args[]){
String SessionID = "2K6VB0UAZV33C5KTKXDV";
try{
String PIN = getSHA(SessionID + getSHA("xyz"+"1234").toLowerCase()).toUpperCase();
System.out.println("PIN ===>>> "+PIN);
}catch(Exception e){
e.printStackTrace();
}
}
}
通过将 "UTF8" 替换为 "UTF-8" 解决了问题。 谢谢大家的回复。