2017-05-24 10 views
1

外部システムのユーザ資格情報を保持するためにNetSuite内にカスタムレコードを作成して、これらの間の統合を構築しています。 "Password"フィールドタイプを使用して、他のシステムへのパスワードがマスクされているだけで、それらを取得することはできません。しかし、これらのフィールドのいずれかに値を入力すると、保存時に値が何らかの16進表現に変換され、他のシステムに渡すために使用できません。使用する値のデコード方法に関する情報はありません。私が気付いていないどこかのJavaScriptデコード機能がありますか? NetSuiteのドキュメンテーションで私が見たことはありません。NetSuiteパスワードのデコードカスタムフィールドタイプ

答えて

0

パスワードフィールドには値が格納されません。レコードが保存されると、値はSHA-1を使用して暗号化され、ハッシュがデータベースに保存されます。つまり、元の値ではなく生成されたハッシュ値を取得できます。 このタイプのフィールドは、保存時に値を暗号化するのではなく、値を取得しようとしたときに復号化するためのものです。パスワードフィールドを使用してハッシュを保存し、別のハッシュと比較して同じ値を持つかどうかを確認する必要があります。

たとえば、パスワードフィールドに「myPassword」を保存して、ハッシュ82bb34c7f299fdf854b4aaeeb747cbcb8de0ad9を生成して保存することができます。次にnlapiEncryptメソッドを使用して、SHA-1を使用して値からハッシュを生成し、その結果を比較することができます。この場合、nlapiEncrypt('myPassword', 'sha1')82bb34c7f299fdf854b4aaeeb747cbcb8de0ad9を返します。これは、ハッシュ値が等しいため、パスワードフィールドに格納されている値が「myPassword」であることを意味します。最後の引数がキーです

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

:あなたが暗号化するために必要がある場合は

は/あなたが暗号化し、テキストフィールドに値を格納するためにAESやキーなどの対称暗号化アルゴリズムを使用する必要があります解読します:

nlapiDecrypt('0e3d0eb7c1fed79402a5bd695aee5b11', 'aes', '125C0B9A3D642927A0C60A6EABDF7948')(最初の引数は暗号化された値です)。