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

iOS Swift中用Hash库实现SHA1转Base64编码(不支持CryptoKit)

解决方案

直接借助Hash Pod返回的哈希数据,结合Foundation原生的Base64编码能力即可实现,无需依赖CryptoKit,适配低部署版本的代码实现如下:

import Hash
import Foundation

// 生成SHA1哈希结果
let hashResult = Hash(message: "message", algorithm: .sha1)
// 提取哈希对应的二进制数据
guard let hashData = hashResult.data else {
    // 这里根据业务需求处理哈希生成失败的场景,比如返回默认值或抛出错误
    fatalError("SHA1 hash generation failed")
}

// 将二进制哈希数据转为标准Base64编码字符串
let base64Token = hashData.base64EncodedString(options: [])

// 若需URL安全的Base64编码(可选),可手动替换特殊字符
let urlSafeBase64Token = base64Token
    .replacingOccurrences(of: "+", with: "-")
    .replacingOccurrences(of: "/", with: "_")
    .trimmingCharacters(in: CharacterSet(charactersIn: "="))

关键说明

  • Hash Pod的HashResult类型自带data属性,存储了哈希的原始二进制数据,这是转换的核心载体
  • base64EncodedString(options:)是Foundation框架的原生方法,最低支持iOS 2.0、macOS 10.4,完全满足低版本部署要求
  • 标准Base64中的+、/字符在URL场景可能存在问题,若需URL安全格式,可通过字符替换实现

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 04:55:43