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

Erlang 24版本不支持ripemd160哈希算法求助

Erlang 24中crypto:hash(ripemd160)报错notsup的解决办法

问题原因

Erlang的crypto模块依赖系统的OpenSSL库,而OpenSSL 1.1.0及以上版本默认不再编译RIPEMD160这类被标记为弱哈希的算法。Erlang 24通常绑定较新版本的OpenSSL,即便官方文档标注支持该算法,实际运行时也会因为底层OpenSSL不支持而抛出notsup错误。

解决步骤

  • 检查OpenSSL版本
    在终端执行命令:

    openssl version
    

    如果输出版本为1.1.0或更高,即可确认是OpenSSL默认禁用导致的问题。

  • 重新编译Erlang并启用RIPEMD160

    1. 先编译支持RIPEMD160的OpenSSL:
      下载OpenSSL源码后,编译时添加启用选项:
      ./config enable-ripemd
      make && make install
      
    2. 重新编译Erlang,指定使用上述编译的OpenSSL:
      ./configure --with-ssl=/path/to/your/openssl/install
      make && make install
      
  • 替代方案:使用纯Erlang实现的RIPEMD160
    若无法重新编译Erlang,可使用第三方纯Erlang实现的RIPEMD160算法。在项目中引入相关依赖后,直接调用对应函数替代crypto:hash/2即可,注意选择维护活跃的库以保证安全性。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.08 14:43:23