2017-05-24 49 views
1

我正在NetSuite中创建自定义记录以保存外部系统的用户凭据,以便在两者之间建立集成。我想使用“密码”字段类型,以便其他系统的密码被屏蔽,不能被抓取。但是,当我在这些字段之一中输入值时,保存时将该值转换为某种十六进制表示形式,并且我无法使用它传入其他系统。我找不到如何解码要使用的值的信息。有没有一些JavaScript解码功能,我不知道?我在NetSuite的文档中没有看到任何东西。解码NetSuite密码自定义字段类型

回答

0

密码字段不存储值。记录保存后,使用SHA-1对值进行加密,并将散列保存在数据库中。这意味着你无法获得原始值,而是生成的散列值。 这种类型的字段不用于在保存时对值进行加密,当您尝试获取值时则进行解密。您应该使用密码字段来存储散列,然后与另一个散列进行比较以验证它们是否具有相同的值。

例如,您可以将'myPassword'保存在密码字段中,并且将生成并存储散列82bb34c7f299fdf854b4aaeeb747cbcb8de0ad9。然后,您可以使用nlapiEncrypt方法使用SHA-1从值生成哈希,并比较结果。在这种情况下,nlapiEncrypt('myPassword', 'sha1')返回82bb34c7f299fdf854b4aaeeb747cbcb8de0ad9,这意味着'myPassword'是存储在密码字段中的值,因为哈希值相等。

如果需要加密/解密的,你应该使用像AES和密钥的对称加密算法来加密并存储在文本字段中的值:

nlapiEncrypt('myPassword', 'aes', '125C0B9A3D642927A0C60A6EABDF7948')

,其中最后一个参数是关键,和:

nlapiDecrypt('0e3d0eb7c1fed79402a5bd695aee5b11', 'aes', '125C0B9A3D642927A0C60A6EABDF7948')解密,其中第一个参数是加密值。