gpt4 book ai didi

netsuite - SuiteScript hmac sha256

转载 作者:行者123 更新时间:2023-12-02 03:46:22 27 4
gpt4 key购买 nike

我实际上正在开发一个基于 netsuite 产品的新项目。我正在尝试使用 hmac sha256 加密消息。

考虑到我有 stringToEncrypt 和 key ,最简单的方法是什么。

我已经阅读了 Netsuite 中的文档,但我仍然陷入困境......

这是我的功能

function toHmacSHA256Base64(toCrypt, key) {
var inputString = toCrypt;
var myGuid = key;
var sKey = crypto.createSecretKey({
guid: myGuid,
encoding: encode.Encoding.UTF_8
});
var hmacSHA256 = crypto.createHmac({
algorithm: 'SHA256',
key: sKey
});
hmacSHA256.update({
input: inputString,
inputEncoding: encode.Encoding.BASE_64
});
var digestSHA256 = hmacSHA256.digest({
outputEncoding: encode.Encoding.HEX
});
return digestSHA256;
};

当然,在crypto这个词后面,我使用了'N/crypto'模块和encode'N/encode'。非常感谢。

最佳答案

这大致正确,并且看起来与 NS 帮助中的示例完全相同。如果您有一个字符串,那么您可能需要 inputEncoding:encode.Encoding.UTF_8 进行更新调用。

缺少的是如何生成 key 的 guid。为此,您可以使用套房。请注意 NS 帮助中的 addSecretKeyField 而不是 addCredentialField:

/**
*@NApiVersion 2.x
*@NScriptType Suitelet
*/
define(['N/ui/serverWidget', './config.js'],
function(serverWidget, config) {
function onRequest(context) {
if (context.request.method === 'GET') {
var form = serverWidget.createForm({
title: 'SFTP Password'
});

form.addSecretKeyField({
id : 'username',
label : 'Pwd',
restrictToScriptIds : config.targetScript,
restrictToCurrentUser : false
});
form.addSubmitButton({
label: 'Submit Button'
});

context.response.writePage(form);
} else {
var textField = context.request.parameters.username;
context.response.write('You have entered: ' + textField);
}
}

return {
onRequest: onRequest
};
});

FWIW 加密在这里是错误的术语。您正在创建数据的哈希值,该哈希值将用于确保数据完整性。您无法解密哈希值。

生成 key 的 GUID 后,我只需将其存储在配置文件中(与上面的脚本列表中使用的文件相同。

在 TypeScript 中它看起来像:

/**
* config.js
* @NApiVersion 2.x
*/

export var config = {

'host': '162.242.144.xxx',
'userName': 'unsername',
'targetScript': ['customscript_transmit_dsv_943', 'customscript_transmit_dsv_940', 'customscript_retrieve_dsv_944'],
'hostKey': 'AAAAB3Nza...Wz'
};

然后,除了 config.xs 文件之外的所有内容都可以存储在版本控制中。需要对脚本中使用的文件适当设置受众。

关于netsuite - SuiteScript hmac sha256,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46585524/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com