首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift SHA256哈希与SHA256哈希不匹配

Swift SHA256哈希与SHA256哈希不匹配
EN

Stack Overflow用户
提问于 2019-03-07 03:09:45
回答 1查看 553关注 0票数 1

有没有人很难从swift获取散列结果来匹配PHP中相同的输入散列结果?下面是我的快速代码:

代码语言:javascript
复制
let longPassword = myTextField.text!+email
let pword: Array<UInt8> = Array(longPassword.utf8)
let keyString = self.runHashOnPassword(text: pword, salt: Array(salt.utf8))

func runHashOnPassword(text: Array<UInt8>, salt: Array<UInt8>) -> String {
    do {
        let key = try PKCS5.PBKDF2(password: text,salt: salt, iterations: 4096, variant: .sha256).calculate()
        let jEncoder = JSONEncoder.init()
        let byteString = try jEncoder.encode(key)
        return byteString.base64EncodedString()
    } catch {
        return ""
    }
}

下面是我的PHP代码:

代码语言:javascript
复制
$longPassword = $pword . $email . $salt;
$newHash = hash('sha256',$longPassword,false);

我曾尝试将PHP散列函数中的boolean标志更改为true,但没有任何帮助。有什么想法吗?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-08 05:19:40

PBKDF2不是摘要。您不能比较这两个值。

不管怎样,这就是你计算散列的方式:https://github.com/krzyzanowskim/CryptoSwift#calculate-digest,基本上:

代码语言:javascript
复制
let hash = bytes.sha256()

在PHP中,hash('sha256',$longPassword,false);输出的是小写的十六进制,所以你需要这样的代码:

代码语言:javascript
复制
let hash = bytes.sha256().toHexString()
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55030518

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档