我正在開發一個套件,將NetSuite與沃爾瑪市場API集成。而且,正如另一個OP here所說的那樣,他們的文檔很多都說如果你不使用Java,那麼你就是你自己的。如何在NetSuite或JavaScript中解密私鑰的BASE64,PCKS-8表示?
我正在尋找一種方式來執行相同的無論是在suitescript或JavaScript。從沃爾瑪的API文檔
指令:
登錄該數據的字節數組表示:
解碼你的私鑰的基地64,PKCS-8表示。請注意,密鑰使用PKCS-8進行編碼。各種語言的庫提供了指定密鑰採用這種格式的能力,而不是PKCS-1等其他衝突格式。使用此密鑰的字節表示法使用SHA-256和RSA對數據進行簽名。編碼使用基地64
而且,一個java代碼從他們的文檔生成的簽名做同樣的:
public static String signData(String stringToBeSigned, String encodedPrivateKey) {
String signatureString = null;
try {
byte[] encodedKeyBytes = Base64.decodeBase64(encodedPrivateKey);
PKCS8EncodedKeySpec privSpec = new PKCS8EncodedKeySpec(encodedKeyBytes);
KeyFactory kf = KeyFactory.getInstance("RSA");
PrivateKey myPrivateKey = kf.generatePrivate(privSpec);
Signature signature = Signature.getInstance("SHA256withRSA");
signature.initSign(myPrivateKey);
byte[] data = stringToBeSigned.getBytes("UTF-8");
signature.update(data);
byte[] signedBytes = signature.sign();
signatureString = Base64.encodeBase64String(signedBytes);
} catch (Exception e) {
e.printStackTrace();
}
return signatureString;
}
僅供參考,這裏的similar thing asked for dot net。任何幫助,將不勝感激。
請從JavaScript重新標記爲Java。 – evolutionxbox
我想我正在尋求JavaScript或Netsuite的幫助。我提供的Java代碼僅供參考。所以這應該只被標記爲JavaScript。如果我錯了,請糾正。 – Haxvik