-3
我想寫一個生成簽名到PHP的示例代碼,該示例是在Java中,但我做錯了什麼。誰能幫我?翻譯Java代碼爲PHP代碼
的樣品是:
String userId;
String applicationKey; // E.g. "196087a1-e815-4bc4-8984-60d8d8a43f1d";
String applicationSecret; // E.g. "oYdgGRXoxEuJhGDY2KQ/HQ==";
long sequence; // fetch and increment last used sequence
String toSign = userId + applicationKey + sequence + applicationSecret;
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
byte[] hash = messageDigest.digest(toSign.getBytes("UTF-8"));
String signature = Base64.encodeBase64String(hash).trim();
我的代碼是:
$userId="User";
$applicationKey="MyappKey";
$applicationSecret="MySecretKey";
$sequence=1;
$stringToSign=$userId.$applicationKey.$sequence.$applicationSecret;
$hash = sha1($stringToSign,true);
$signature = trim(base64_encode($hash));
是Java
MessageDigest messageDigest = MessageDigest.getInstance("SHA-1");
byte[] hash = messageDigest.digest(toSign.getBytes("UTF-8"));
在PHP中,同樣的
$hash1 = sha1($stringToSign,true);
和Java Base64.encodeBase64String(hash).trim();
在php中是一樣的trim(base64_encode($hash));
問題是當我執行java代碼並且得到的輸出與php代碼不一樣的時候。
您應該更新您的Java代碼,使同樣的任務爲你的PHP代碼;正如StefanBeike指出的那樣,由於未初始化的變量,您的Java代碼無效。 –
「尋求調試幫助的問題(」爲什麼不是這個代碼工作?「)必須包含所需的行爲,特定的問題或錯誤以及在問題本身中重現問題所需的最短代碼。」 「我做錯了什麼」不是一個具體問題。 –
謝謝你的意見,但我想用PHP編寫java代碼給我。它是在https://www.sinch.com/docs/voice/android/#authenticationbyclientaccesstoapplicationsecret如果Java代碼是錯誤的對我來說是新的,因爲我希望它在PHP中,我不知道太多關於Java。這就是爲什麼我在這裏問。 – Roke