ZIP Support & Crypto — Securing Data

DEX455 - JSON、XML、ZIP、加密与正则表达式完全指南

📄 第 423 页 🎬 视频课程

课程章节介绍

同学们,今天我们来聊聊Apex里处理压缩和加密的两个工具,分别是 Compression 命名空间和 Crypto 类。别担心,它们听起来复杂,其实用起来很直接。 先看压缩,就是那个 ZIP 文件。很多时候我们接收到的数据是打包好的 ZIP 存档,如果只想拿里面某一个文件,难道要把整个包都解压吗?不用。Apex 提供了 ZipReader 类,你可以把它想象成一个能直接阅读 ZIP 文件的读卡器。我们把 ZIP 文件内容作为 Blob 数据交给 ZipReader,然后调用 getEntry 方法,写下你想找的文件名,它就能定位到那个具体的文件。再调用 extractEntry 方法,就能把那个文件的原始数据取出来,剩下的文件根本不用动,既省时间又省资源。记住,三个步骤:用 Blob 创建 ZipReader,getEntry 找到文件,extractEntry 取出数据。 接下来是加密相关的 Crypto 类。它把几种安全算法都准备好了,我们直接调用就行。第一类是生成摘要,也叫做散列,可以用来验证数据有没有被篡改。用 generateDigest 方法,指定算法,比如 SHA1、SHA256 或者 MD5,传入原始数据,就能得到一个独一无二的指纹串。第二类是消息认证码,也就是 HMAC,在散列的基础上加了一把钥匙,既验证完整性又验证来源。用 generateMac 方法,算法可以选 HMacSHA1 或 HMacSHA256,同时提供密钥和数据,它就会算出认证码。第三类是对称加密 AES,用来保护数据的机密性。加密用 encryptWithManagedIV,解密用 decryptWithManagedIV,支持 128、192 和 256 位的密钥长度,它会自动帮你处理初始化向量,让操作更安全也更简单。 举个实际场景:AWS 集成的时候,我们需要对请求进行签名,用的就是 HMacSHA1。拿请求里的关键信息和密钥一起算出一个 HMAC 签名,放到请求头里,AWS 那边就能凭同样的算法验证是你发送的请求,没被篡改过。 最后提醒一下,在做单元测试的时候,一定要验证加密和解密能不能正确往返——也就是加密后再解密,应该得到原始数据。同时还要故意传一个错误的密钥长度,看看系统会不会抛出 SecurityException,这样就能确保我们的代码对密钥长度有正确的校验。 好了,今天关于压缩和加密的工具就讲到这里。大家可以在开发者文档里多看看这些方法的示例,动手试一试。

关键词

Apex Salesforce Developer Guide