Potrzebuję twojej pomocy. Moi Java i Python skrypty nie coraz AME SHA-1 wartość wyrażenie:Java i python nie otrzymują tej samej wartości sha-1
hash.py
# -*- coding: utf-8 -*-
import hashlib
username = raw_input('username:')
timestamp = raw_input('timestamp:')
app_id = 'dad'
secret_key = 'dadda'
print 'The hashed string is: ' , hashlib.sha1(username + timestamp + app_id + secret_key).hexdigest()
hash.java
public static String generateSHA1(String password)
{
String sha1 = "";
try
{
MessageDigest crypt = MessageDigest.getInstance("SHA-1");
crypt.reset();
crypt.update(password.getBytes("UTF-8"));
sha1 = byteToHex(crypt.digest());
}
catch(Exception e)
{
e.printStackTrace();
}
return sha1;
}
private static String byteToHex(final byte[] hash)
{
Formatter formatter = new Formatter();
for (byte b : hash)
{
formatter.format("%02x", b);
}
String result = formatter.toString();
formatter.close();
return result;
}
UPDATE: Zakładając, że hasło jest już połączone: użycie rname, timestamp, app_id i secret_key
Czy jest coś, co przegapiłem? Myślę, że coś jest nie tak z moim reanimacją kodu Java. Formatowanie UTF-8: \ xe2 \ x80 \ x8b ale nie mogłem tego rozgryźć. Każda pomoc zostanie doceniona. Dzięki.
Czy to zachowanie ma miejsce dla wszystkich wartości nazwy użytkownika/znacznika czasu? Czy możesz wysłać próbną parę użytkownika/znacznika czasu, którą próbujesz? –
@ SanjayT.Sharma nazwa użytkownika: [email protected] timestamp: 1447943648 –
Nie mogę odtworzyć twojego problemu tutaj; Otrzymuję tę samą wartość "eeae0d665ed71f3d8f4e3d344fda1c3735dc46c0" dla obu przy użyciu przykładowych danych wejściowych. –