2

不是 SFDC 专家,但需要集成托管在 SFDC 中的 Web 表单。由于其他原因,此页面需要捕获初始密码并将密码的加盐/sha256 版本发送给另一个系统或人类。我显然不想保存明文。

在保存之前散列密码的最简单的触摸方式是什么?我可以在浏览器中执行此操作,但我不想依赖 Javascript。

4

4 回答 4

2

是的,您应该将此代码添加到顶点触发器。

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;
  }
}
于 2011-03-25T05:14:48.973 回答
2

以下是将字符串加密为 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);
于 2020-01-22T19:00:05.287 回答
1

Apex 有一个Crypto类,其中包含generateDigest您需要的方法,例如:

Blob hash = Crypto.generateDigest('SHA-256', Blob.valueOf(passwordString));
于 2011-03-24T13:01:04.250 回答
0

这对我有用=>

String abc = EncodingUtil.convertToHex(
             Crypto.generateDigest('SHA-256', 
             Blob.valueOf('test String')));
于 2020-05-14T12:36:24.977 回答