【Swift】iOS12でSHA-256変換する
どういうことか
iOS13からCryptoKitを使って簡単にSHA-256形式でハッシュ化できるっぽいけどiOS12は対応していないのでなんとかして変換する。
なんとかする
CommonCryptoを使用する。
EncryptionUtil.swift
import CommonCrypto
class EncryptionUtil {
static func convertToSha256(string: String) -> String {
var result: [CUnsignedChar]
let digestLength = Int(CC_SHA256_DIGEST_LENGTH)
if let cdata = string.cString(using: String.Encoding.utf8) {
result = Array(repeating: 0, count: digestLength)
CC_SHA256(cdata, CC_LONG(cdata.count - 1), &result)
} else {
fatalError("SHA256の変換に失敗しました")
}
return (0..<digestLength).reduce("") {
$0 + String(format: "%02hhx", result[$1])
}
}
}
このクラスに文字列を投げて変換する。
// 呼び出して変換
print(EncryptionUtil.convertToSha256(string: "パスワード"))
// 変換後
// d8b076148c939d9d2d6eb60458969c486794a4c0fcf0632be58fa5bf6d15aafa
SHA256ハッシュ生成ツールなどを使って比べてみると同じものが出力されてるはず。
おわり(´・ω・`)
参考
Author And Source
この問題について(【Swift】iOS12でSHA-256変換する), 我々は、より多くの情報をここで見つけました https://qiita.com/antk/items/cb7557221d5b3f552c7e著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .