【问题标题】:How to generate aes key with SHA1PRNG algorithm in golang?如何在golang中使用SHA1PRNG算法生成aes密钥?
【发布时间】:2018-12-19 04:10:45
【问题描述】:

请原谅我的泳池英语。 服务器程序是java代码,我需要给它一个密码来生成aes密钥。密码是一个随机字节数组。服务器程序使用密码作为随机种子,使用 SHA1PRNG 算法生成 128 位 AES 密钥。相同的密码与 gen 相同的密钥。 现在我正在用 golang 编写客户端程序。如何在 golang 中使用随机字节数组生成 AES 密钥?

【问题讨论】:

标签: go


【解决方案1】:

你可以试试下面的代码

func SHA1(data []byte) []byte {
    h := sha1.New()
    h.Write(data)
    return h.Sum(nil)
}

func aesKeySecureRandom(keyword string) (key []byte) {
    data := []byte(keyword)

    hashs := SHA1(SHA1(data))
    key = hashs[0:16]

    return key
}

你可以使用java或者golang来验证

示例:

关键字:123456

纯文本:abc111abc

十六进制密钥:6bb4837eb74329105ee4568dda7dc67e

key base64:a7SDfrdDKRBe5FaN2n3Gfg==

密文 base64:7ke0HhU5KnkCaPBilYsMiw==

【讨论】:

    猜你喜欢
    • 2014-06-15
    • 2020-06-24
    • 2011-11-20
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-31
    相关资源
    最近更新 更多