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

Ceylon中导入标准加密哈希(消息摘要)库的推荐方式

在Ceylon中导入标准加密哈希库的推荐方式

嘿,我来帮你梳理下在Ceylon里导入MD5、SHA系列这些标准哈希算法的最佳实践~

首先,Ceylon的官方SDK里提供了ceylon.security模块,它封装了Java加密扩展(JCE)的功能,所以我们不需要额外引入第三方库,直接用这个官方模块就够了。

1. 先声明模块依赖

在你的Ceylon项目的模块描述符(module.ceylon)里,需要先添加对ceylon.security的依赖:

module your.module.name "1.0.0" {
    import ceylon.security "1.3.3"; // 替换为你当前使用的Ceylon版本对应的security模块版本
}

2. 具体哈希算法的导入与使用

接下来,针对不同的哈希算法,你可以通过MessageDigest工厂方法获取实例,或者直接导入相关工具类:

MD5

import ceylon.security { MessageDigest }

value md5Digest = MessageDigest("MD5");
// 示例:计算字符串的MD5哈希值
value hashBytes = md5Digest.digest("hello world".getBytes());

SHA-1

import ceylon.security { MessageDigest }

value sha1Digest = MessageDigest("SHA-1");
value hashBytes = sha1Digest.digest("hello world".getBytes());

SHA-2系列(SHA-256、SHA-384、SHA-512)

SHA-2包含多个子算法,直接指定对应的算法名称即可:

import ceylon.security { MessageDigest }

// SHA-256
value sha256Digest = MessageDigest("SHA-256");
// SHA-384
value sha384Digest = MessageDigest("SHA-384");
// SHA-512
value sha512Digest = MessageDigest("SHA-512");

SHA-3

SHA-3是较新的哈希算法,同样通过MessageDigest获取实例,注意算法名称的格式:

import ceylon.security { MessageDigest }

// SHA-3-256(大小写不敏感,写SHA3-256也可以)
value sha3Digest = MessageDigest("SHA-3-256");
// 其他SHA-3变体:SHA-3-224、SHA-3-384、SHA-3-512
value sha3_224 = MessageDigest("SHA-3-224");

小提示

  • 算法名称的字符串参数是大小写不敏感的,比如"md5"和"MD5"都能正常工作。
  • 如果需要将哈希字节数组转换为易读的十六进制字符串,可以使用ceylon.common模块里的hexEncode函数,记得导入ceylon.common { hexEncode }。
  • 这些实现基于Java的JCE,支持的算法取决于你使用的JVM版本:MD5、SHA-1、SHA-2系列在所有现代JVM中都支持;SHA-3从Java 9开始默认支持,若使用Java 8可能需要额外安装JCE扩展包。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 08:57:42