在Salesforce中保存散列字符串?

时间:2011-03-24 00:51:49

标签: hash salesforce sha256 apex-code

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

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

4 个答案:

答案 0 :(得分: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;
  }
}

答案 1 :(得分:1)

Apex有一个Crypto类,您需要generateDigest方法,例如:

Blob hash = Crypto.generateDigest('SHA-256', Blob.valueOf(passwordString));

答案 2 :(得分:1)

以下是将字符串加密为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);

答案 3 :(得分:0)

这对我有用=>

String abc = EncodingUtil.convertToHex(
             Crypto.generateDigest('SHA-256', 
             Blob.valueOf('test String')));