我试图在Python3.x中实现WSSE身份验证。我有几个问题,因为使用java代码在Python中进行翻译。例如,我检查了错误并一个接一个地修复了它们,但现在我有401响应代码的签名。这可能是因为用户名、密码摘要或Nonce属性没有正确填写。有人能帮忙吗
例如,我需要翻译以下代码:
private String getNonce() {
byte[] nonceBytes = new byte[16];
new Random().nextBytes(nonceBytes);
return bytesToHex(nonceBytes);
}
private String getPasswordDigest(String nonce, String timestamp) {
String digest = "";
try {
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
messageDigest.reset();
String hashedString = String.format("%s%s%s", nonce, timestamp,
apiSecretKey);
messageDigest.update(hashedString.getBytes("UTF-8"));
String sha1Sum = bytesToHex(messageDigest.digest());
digest = DatatypeConverter.printBase64Binary(sha1Sum.getBytes("UTF-8"));
} catch (NoSuchAlgorithmException ex) {
System.out.println("No SHA-1 algorithm was found!");
} catch (UnsupportedEncodingException ex) {
System.out.println("Cannot use UTF-8 encoding.");
}
System.out.printf("Digest:%s\n",digest);
return digest;
}
private String bytesToHex(byte[] bytes) {
char[] hexChars = new char[bytes.length * 2];
for (int j = 0; j < bytes.length; j++) {
int v = bytes[j] & 0xFF;
hexChars[j * 2] = hexArray[v >>> 4];
hexChars[j * 2 + 1] = hexArray[v & 0x0F];
}
return new String(hexChars);
}
目前没有回答
相关问题 更多 >
编程相关推荐