草庐IT

Cryptography

全部标签

json - 如何从json中获取相同的hash

我需要签署一个JSON,但我注意到解码/编码会改变JSON的顺序,这可能会使签名无效。不管顺序如何,是否可以从JSON字符串生成相同的散列?我看过JOSE,但找不到实际散列JSON的函数。 最佳答案 JOSEJWS绝对会做你想做的事,但代价是必须管理用于签名和验证的key。但让我们假设您并不真正需要JOSE中的全部key管理内容和一般加密功能,并且您不是super关心性能(因此在此过程中进行一些字符串处理是可以的)。你可以愚蠢地解码你的JSON并重新编码它,然后只是哈希:packagemainimport("crypto/sha25

json - 如何从json中获取相同的hash

我需要签署一个JSON,但我注意到解码/编码会改变JSON的顺序,这可能会使签名无效。不管顺序如何,是否可以从JSON字符串生成相同的散列?我看过JOSE,但找不到实际散列JSON的函数。 最佳答案 JOSEJWS绝对会做你想做的事,但代价是必须管理用于签名和验证的key。但让我们假设您并不真正需要JOSE中的全部key管理内容和一般加密功能,并且您不是super关心性能(因此在此过程中进行一些字符串处理是可以的)。你可以愚蠢地解码你的JSON并重新编码它,然后只是哈希:packagemainimport("crypto/sha25

javascript - 在 golang 和 Javascript 中生成相同的 SHA1 UUID

我有一个我认为非常简单的问题。我正在使用此代码在Golang中生成SHA1uuid:namespace:=uuid.Parse("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740")sha:=uuid.NewSHA1(namespace,[]byte("something"))fmt.Println(sha.String())现在我想在javascript中生成相同的UUID,我认为它会像这样简单:varhash=CryptoJS.SHA1("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740"+"something")//chompthe

javascript - 在 golang 和 Javascript 中生成相同的 SHA1 UUID

我有一个我认为非常简单的问题。我正在使用此代码在Golang中生成SHA1uuid:namespace:=uuid.Parse("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740")sha:=uuid.NewSHA1(namespace,[]byte("something"))fmt.Println(sha.String())现在我想在javascript中生成相同的UUID,我认为它会像这样简单:varhash=CryptoJS.SHA1("b9cfdb9d-f741-4e1f-89ae-fac6b2a5d740"+"something")//chompthe

go - 从 Pem 字符串 Golang 生成私钥

我正在尝试从PEM字符串在Golang中生成私钥和公钥对象,这是我的示例r:=strings.NewReader(privateKey)pemBytes,err:=ioutil.ReadAll(r)iferr!=nil{log.Fatal(err)}block,_:=pem.Decode(pemBytes)ifblock==nil{log.Println(block)}这是我的PEM字符串varprivk="-----BEGINPRIVATEKEY-----"+"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDKlvdvjS7EEk

go - 从 Pem 字符串 Golang 生成私钥

我正在尝试从PEM字符串在Golang中生成私钥和公钥对象,这是我的示例r:=strings.NewReader(privateKey)pemBytes,err:=ioutil.ReadAll(r)iferr!=nil{log.Fatal(err)}block,_:=pem.Decode(pemBytes)ifblock==nil{log.Println(block)}这是我的PEM字符串varprivk="-----BEGINPRIVATEKEY-----"+"MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDKlvdvjS7EEk

go - 如何在 Go 中使用密码创建 RSA 私钥?

如何在Go中创建带密码的RSA私钥?我阅读了crypto的文档包,但我无法从中拼凑出一个解决方案。 最佳答案 第一步,生成私钥。第二步,将其转换为PEM格式。第三步,加密PEM。都可以使用Golang的标准库来完成,非常完善。代码并不难,所以我把它放在这里。它所要做的就是知道要使用哪些功能。import("crypto/rand""crypto/rsa""crypto/x509""encoding/pem")funcPrivateKeyToEncryptedPEM(bitsint,pwdstring)([]byte,error){/

go - 如何在 Go 中使用密码创建 RSA 私钥?

如何在Go中创建带密码的RSA私钥?我阅读了crypto的文档包,但我无法从中拼凑出一个解决方案。 最佳答案 第一步,生成私钥。第二步,将其转换为PEM格式。第三步,加密PEM。都可以使用Golang的标准库来完成,非常完善。代码并不难,所以我把它放在这里。它所要做的就是知道要使用哪些功能。import("crypto/rand""crypto/rsa""crypto/x509""encoding/pem")funcPrivateKeyToEncryptedPEM(bitsint,pwdstring)([]byte,error){/

go - ed25519.Public 结果不同

使用包https://github.com/golang/crypto/tree/master/ed25519我正在尝试获取给定私钥的公钥。这些数据来自http://www.bittorrent.org/beps/bep_0044.html:测试2(用盐改变)问题是,当我向ed25519.Public()提供给定的私钥时,它不会返回相同的公钥。golang实现返回PVK的最后32个字节。但在我的测试数据中,这是出乎意料的。这里的代码https://play.golang.org/p/UJNPCyuGQBpackagemainimport("encoding/hex""golang.or

go - ed25519.Public 结果不同

使用包https://github.com/golang/crypto/tree/master/ed25519我正在尝试获取给定私钥的公钥。这些数据来自http://www.bittorrent.org/beps/bep_0044.html:测试2(用盐改变)问题是,当我向ed25519.Public()提供给定的私钥时,它不会返回相同的公钥。golang实现返回PVK的最后32个字节。但在我的测试数据中,这是出乎意料的。这里的代码https://play.golang.org/p/UJNPCyuGQBpackagemainimport("encoding/hex""golang.or