不是 SFDC 专家,但需要集成托管在 SFDC 中的 Web 表单。由于其他原因,此页面需要捕获初始密码并将密码的加盐/sha256 版本发送给另一个系统或人类。我显然不想保存明文。
在保存之前散列密码的最简单的触摸方式是什么?我可以在浏览器中执行此操作,但我不想依赖 Javascript。
不是 SFDC 专家,但需要集成托管在 SFDC 中的 Web 表单。由于其他原因,此页面需要捕获初始密码并将密码的加盐/sha256 版本发送给另一个系统或人类。我显然不想保存明文。
在保存之前散列密码的最简单的触摸方式是什么?我可以在浏览器中执行此操作,但我不想依赖 Javascript。
是的,您应该将此代码添加到顶点触发器。
trigger on sObject(before insert){
for(sObject s: trigger.new){
s.Hash__c = Crypto.generateDigest('SHA-256', Blob.valueOf(s.passwordString__c));
s.passwordString__c = null;
}
}
以下是将字符串加密为 SHA256 哈希格式的代码:
//value to process
Blob data= Blob.valueOf('Any String');
或在字段值的情况下
Blob data= Blob.valueOf(sObject.FieldAPIName));
Blob hash = Crypto.generateDigest('SHA-256', data);
//Convert SHA-256 Hash data to String
String encryptedString =EncodingUtil.convertToHex(hash);
Apex 有一个Crypto
类,其中包含generateDigest
您需要的方法,例如:
Blob hash = Crypto.generateDigest('SHA-256', Blob.valueOf(passwordString));
这对我有用=>
String abc = EncodingUtil.convertToHex(
Crypto.generateDigest('SHA-256',
Blob.valueOf('test String')));