You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

是否可在Progress Openedge中使用JWE(JSON Web加密)技术?

Progress OpenEdge 对JWE技术的支持说明

Progress OpenEdge 开发与运行环境支持JWE(JSON Web Encryption)能力,不同版本的实现方式有区别,具体如下:

  • 原生支持(推荐方案)
    从OpenEdge 11.7版本开始,官方内置的安全与JSON处理模块已经覆盖JOSE规范族的核心能力,包含完整的JWE加解密支持,无需引入第三方依赖即可对接JWE相关业务:
    • 兼容主流标准算法:密钥协商阶段支持RSA-OAEP、RSA-OAEP-256、A128KW、A256KW等常用算法,内容加密阶段支持A128GCM、A256GCM、A128CBC-HS256、A256CBC-HS512等标准算法
    • 支持JWE令牌的生成、解析、解密、合法性校验全流程操作,支持自定义扩展JWE头字段、自定义载荷声明
    • 12.2及以上的LTS版本修复了早期版本对压缩声明、多接收者头的兼容问题,和其他技术栈的主流JWE实现互通性最好,生产环境优先选用该版本
  • 低版本兼容方案
    如果使用11.7之前的OpenEdge版本(如11.6、10.2B等无原生JWE支持的版本),可以通过两种路径实现能力:
    • 借助OpenEdge自带的.NET/Java桥接能力,调用本地部署的对应平台加密组件(如BouncyCastle加密库)中的JWE处理方法,不需要脱离现有OpenEdge运行架构
    • 基于OpenEdge原生提供的对称/非对称加密、Base64URL编解码能力,严格按照RFC 7516规范自行实现JWE的分段拼接、加解密逻辑,开发时需要注意字节序、填充规则的规范一致性,避免出现跨栈兼容问题

注意:如果业务涉及和外部系统的JWE令牌交互,不要使用自行实现的非标准逻辑,优先用官方原生能力或经过生产验证的桥接组件,避免出现加解密失败、安全合规不满足要求的问题。

原生JWE加密的最简ABL代码示例如下:

/* OpenEdge 12.2 环境下JWE令牌生成示例 */
USING Progress.Security.JOSE.JweEncoder.
USING Progress.Security.Cryptography.Rsa.

DEFINE VARIABLE oJweEncoder AS JweEncoder NO-UNDO.
DEFINE VARIABLE cBizPayload AS LONGCHAR NO-UNDO.
DEFINE VARIABLE cEncryptedToken AS CHARACTER NO-UNDO.

/* 导入加密用RSA公钥 */
oJweEncoder:SetPublicKey(Rsa:ImportPublicKey("conf/rsa_pub.pem")).
/* 指定JWE使用的算法组合 */
oJweEncoder:KeyManagementAlgorithm = "RSA-OAEP-256".
oJweEncoder:ContentEncryptionAlgorithm = "A256GCM".
/* 写入业务加密载荷 */
cBizPayload = '{"uid":"u_10086","exp":1740000000,"scope":"order:read"}'.
/* 生成最终JWE密文令牌 */
cEncryptedToken = oJweEncoder:Encode(cBizPayload).

内容的提问来源于stack exchange,提问作者JulesVerne

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 02:33:08