- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-07-2022 05:48 PM
お世話になっております。
現在要件として、2つの異なるテーブルのパスワード(2通りの暗号化)フィールドの値を照合し
もし一致したらあるTrue/Falseフィールドの値をTrueにするというものを受けていますが
そちらを実装するための方法が不明のため、どなたかご教示いただくことは可能でしょうか?
よろしくお願いいたします。
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-08-2022 03:51 AM
フィールドタイプ Password (2 Way Encrypted) は GlideEncrypter を使うことで 復号化してパスワードが一致しているか判定できます。
GlideEncrypter | ServiceNow Developers
// インポートセット データーソースの パスワードを復号化して表示
var gr = new GlideRecord("sys_data_source");
gr.get('11cb5d112ff38110828ad6c6f699b656');
gs.info(new GlideEncrypter().decrypt(gr.scp_password));// Password (2 Way Encrypted) 復号表示

- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-08-2022 03:12 AM
お世話になります。
特定のワークフローで、二つのフィールドを比較して、それが一致したらまた別のフィールドをTrueにするのはそれなりに簡単かと思いますが、問題は比較する別々の暗号化されているパスワードフィールドかと思います。
フィールドA XというパスワードをE1という暗号化方式で暗号化した結果が入っている E1(X) とします
フィールドB XというパスワードをE2という暗号化方式で暗号化した結果が入っている E2(X)とします
この場合、当然ですが、E1(X)とE2(X)は異なるので、直接比較しても絶対に一致しません。
そこでどのように比較するかですが、
1.復号化の手順がわかっていれば、ワークフローのどこかで E1(X)を復号化したXとE2(X)を復号化したXを比較すれば良いのですが、通常この復号化手順はadminであっても開示されないのが普通かと思います。
2.厳密には当初のご要件と違ってしまいますが、 X(暗号化前)をハッシュ化したものをフィールドAとBに保管しておき、特定のタイミングでそのハッシュ値同士を比較する
の二つが思いつきました。1と2の組み合わせもありうるかもです。
元のパスワードを平文に戻さないでやる方法がなかなか見つからず、また2については、正直あんまり意味ないですが、元々のご要件が通常のやり方だとかなり難しいかなと想定しています。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-08-2022 03:51 AM
フィールドタイプ Password (2 Way Encrypted) は GlideEncrypter を使うことで 復号化してパスワードが一致しているか判定できます。
GlideEncrypter | ServiceNow Developers
// インポートセット データーソースの パスワードを復号化して表示
var gr = new GlideRecord("sys_data_source");
gr.get('11cb5d112ff38110828ad6c6f699b656');
gs.info(new GlideEncrypter().decrypt(gr.scp_password));// Password (2 Way Encrypted) 復号表示