前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >salesforce开发之 浅析apex的加密工具类(Crypto Class)

salesforce开发之 浅析apex的加密工具类(Crypto Class)

原创
作者头像
zcx
修改2022-08-02 18:40:16
1.1K1
修改2022-08-02 18:40:16
举报
文章被收录于专栏:salesforce开发记事本

在接口集成时,http head中的数据通常需要加密处理。(token、password等)

apex内置了Crypto Class加密类提供调用。配合EncodingUtil类使用,可实现加密并编码。

salesforce提供了详细的文档:

https://developer.salesforce.com/docs/atlas.en-us.apexref.meta/apexref/apex_classes_restful_crypto.htm

apex实现几种主流的加密方式:base64、MD5、SHA、AES代码举例:

base64:

代码语言:javascript
复制
     EncodingUtil.base64Encode(Blob.valueOf(dataStr));

MD5:

代码语言:javascript
复制
    public static String MD5Encode(String input){
        Blob blobStr = Blob.valueOf(input);
        //加密
        Blob hash = Crypto.generateDigest('MD5',blobStr);
        //编码
        String reStr = EncodingUtil.convertToHex(hash);
        return reStr;
    }

SHA:

代码语言:javascript
复制
    public static String SHA1Encode(String input){
        Blob blobStr = Blob.valueOf(input);
        //加密
        Blob hash = Crypto.generateDigest('SHA1',blobStr);
        //编码
        String reStr = EncodingUtil.convertToHex(hash);
        return reStr;
    }

AES加密:

代码语言:javascript
复制
    Blob data = Blob.valueOf(DataStr);
    //密钥,随机16位字符串
    String iv = EncodingUtil.ConvertTohex(Crypto.GenerateAESKey(128)).SubString(0, 16);
    //加密
    Blob encrypted = Crypto.encrypt('AES128',Blob.valueOf(password),Blob.valueOf(iv),data);
    //编码
    String secret = EncodingUtil.base64Encode(encrypted)

那么在官方文档中未提供的加密方式通过apex可以实现吗?例如RSA加密

---------------不能。由于项目内第三方系统使用rsa加密数据集成,头疼不已。但截止今天答案仍是不能。(除非用java做接口专门加密)

附上一个关于加密的有趣的网站

https://the-x.cn/cryptography/Des.aspx

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档