Hash 在Salesforce中保存哈希字符串?

Hash 在Salesforce中保存哈希字符串?,hash,salesforce,sha256,apex-code,Hash,Salesforce,Sha256,Apex Code,不是SFDC专家,但需要集成SFDC中托管的web表单。出于其他原因,此页面需要捕获初始密码,并将salted/sha256版本的密码发送给其他系统或人员。显然,我不想保存明文 保存密码前,最轻的触摸方式是什么?我可以在浏览器中执行此操作,但我不想依赖Javascript。Apex有一个Crypto类,它有一个generateDigest方法,类似于: Blob hash = Crypto.generateDigest('SHA-256', Blob.valueOf(passwordString

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


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

Apex有一个
Crypto
类,它有一个
generateDigest
方法,类似于:

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

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

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);
这对我有效=>

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

这应该能奏效。这可以附加到保存操作吗?是的,您可以使用Chris显示的触发器方法,也可以编写自定义方法,而不是默认的save(),该方法将计算哈希值,然后调用控制器的save()。非常感谢!!!我很高兴它帮助了你……:)