2017-05-24 48 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')解密,其中第一個參數是加密值。