小编jsa*_*ire的帖子

Nodejs 和 kotlin 中的 SHA256 不同哈希

我在两个不同的模块中使用 SHA 256 哈希生成器。一个模块是用 Kotlin 编写的,另一个模块使用 Nodejs 加密 API 编写。Nodejs 和 kotlin 中的哈希值略有不同。

Kotlin 代码

import java.security.MessageDigest
import java.util.Base64
fun main() {
        val md = MessageDigest.getInstance("SHA-256")
        val input = "test".toByteArray(Charsets.UTF_8)
        val bytes = md.digest(input)
        println(Base64.getUrlEncoder().encodeToString(bytes))
}
Run Code Online (Sandbox Code Playgroud)

Nodejs代码

const crypto = require('crypto');
const hash = crypto.createHash('sha256');

hash.update('test');
console.log(crypto.createHash('sha256').update('test', 'utf8').digest('base64'));
Run Code Online (Sandbox Code Playgroud)

kotlin 代码输出n4bQgYhMfWWaL-qgxVrQFaO_TxsrC4Is0V1sFbDwCgg=where ,而 Nodejs 代码输出n4bQgYhMfWWaL+qgxVrQFaO/TxsrC4Is0V1sFbDwCgg=。我无法确定我做错了什么?

java sha256 node.js kotlin

6
推荐指数
1
解决办法
5983
查看次数

标签 统计

java ×1

kotlin ×1

node.js ×1

sha256 ×1