草庐IT

ECDHE-ECDSA-AES

全部标签

go - AES CTR 失败测试向量(一个除外)

我正在Go中测试AESCTR。我写了加密/解密的逻辑。当然,我搜索了测试向量以验证我的加密/解密逻辑是否有效。第一个矢量通过但其余的不通过。如果有人可以结帐,我将不胜感激this代码被剪断并提示我失败的原因。typetestVectorstruct{plainTextstringcipherTextstring}funcmain(){//encryptionkeyencryptionKey,err:=hex.DecodeString("603deb1015ca71be2b73aef0857d77811f352c073b6108d72d9810a30914dff4")iferr!=nil

java - 解码 ECDSA 失败,出现 : Exception in thread "main" java. security.SignatureException:错误解码签名字节

我正在尝试使用java验证ECDSA签名,key是使用golang创建的:import("crypto/ecdsa""crypto/elliptic""crypto/rand""crypto/x509""encoding/pem""fmt""io/ioutil""reflect")funcdoit(){privateKey,_:=ecdsa.GenerateKey(elliptic.P384(),rand.Reader)publicKey:=&privateKey.PublicKeyif!elliptic.P384().IsOnCurve(publicKey.X,publicKey.Y

go - aes.NewCipher 返回一个有效 block ,但调用 block.BlockSize() 时出现错误

我正在尝试在我的goAPI中使用AES加密和解密,我使用aes.NewCipher(mykey)创建了一个新block并且该block似乎有效,但是当我调用cipher.NewCB​​CDecrypter(block,iv)该函数在尝试调用b.BlockSize()时在cbc.go的第26行导致“无效内存地址或零指针取消引用”错误。所以我尝试从我自己的代码中调用block.BlockSize()并且我也得到了一个异常,但是当我检查blockvar时它不是nil。funcDecrypt(data[]byte)(result[]byte,errerror){logger:=logrus.N

cryptography - Golang 使用 ecdsa 和来自 SHA224 摘要的私钥进行签名

我需要签署一条消息以提交给远程服务(通过websocket)。为此,我需要根据一个整数(我的用户ID)和一个密码(一个base64编码的字符串)构建一个私钥,并使用SHA224进行哈希处理。为此,我使用golang和crypto/ecdsa以及用于字节编码等的随附包。这是我的文档:SignaturesuseanEllipticCurveDigitalSignatureAlgorithm(ECDSA)encodedmessagecontaining:userID,ServerNonce,ClientNodeandPrivatekey.Privatekeysaregeneratedhash

javascript - 从 Go 到 JS forge 的 AES-CFB

我正在尝试写一些不安全的东西。目的是加密服务器端的mp3,这样它们就不能用wget下载或“另存为”并被普通人使用。思路在服务端,加载mp3,aes-cfb加密,在header中发送key,在responsebody中发送加密后的mp3。服务器端使用Go的标准库和AES-CFB加密。首先使用base64编码,然后只是加密[]byte-s的普通输出。客户端我正在使用forge解密。我发送一个xhr,读取数组缓冲区,使用forge解密并将输出写入控制台。test.txt的内容是“这只是一个测试,可能有效也可能无效。”主.gopackagemainimport("net/http""io""c

go - 如何在 GoLang 中分离编码的 ecdsa 公钥和私钥

到目前为止,我有:key,err:=ecdsa.GenerateKey(elliptic.P521(),rand.Reader)iferr!=nil{os.Exit(-1)}marshalled,err:=x509.MarshalECPrivateKey(key)//marshallsdatatobytestreamiferr!=nil{os.Exit(-1)}基本上,我遇到的问题与这样一个事实有关:当生成key对时,它存储在*ecdsa.PrivateKey中,其中公钥存储在*ecdsa.PrivateKey.PublicKey,当我使用x509.MarshalECPrivateKe

php - 在PHP中解密由openssl_encrypt加密的AES-256-CBC密文时出现坏 block 大小错误

我有一个PHP模块,它使用openssl_encrypt使用aes-256-cbc加密电子邮件。本模块生成的密文也可以用本模块解密。但是,如果我尝试使用相同的IV和key在Go中使用aes-256-cbc的实现来解密它们,我会得到一个badblocksize错误。block大小应该是16的倍数,但PHP生成的密文不是16的倍数。这是代码packagemainimport("crypto/aes""crypto/cipher""crypto/sha256""encoding/base64""encoding/hex""fmt")var(IV=[]byte("fg3Dk54f4340fKF

javascript - AES CBC : JavaScript/CryptoJS Encrypt -> Golang Decrypt

注意:这仅供个人使用和学习,我不会尝试将自己的加密技术用于公共(public)用途。我需要AES256加密一个字符串,但是我目前的尝试在十六进制解码时以Salted__Vέ��|��l����ʼ8XCQlY服务器端的字符串结束。十六进制解码后,它应该是一个有效的utf8base64字符串,然后可以将其解码为原始字符串。这类似于提供的解决方案here,但是盐不是实际问题(尽管答案被接受)并且我无法通过在使用前对iv进行十六进制解码来抑制盐操作(如建议的那样)。有办法做到这一点吗?我尝试了几种不同的方法,但总是以相似的方式结束。我最近的尝试是这样的:加密.js//CryptoJS.pad.

php - 解密在 GOLang 上用 PHP 解密的 AES-CBC-256 Mcrypt_RIJNDAEL

我尝试在go中重写一些在php5.6(CodeIgniter)中编写的旧代码,但我正在忙于解密。我设法从php解码MCRYPT_RIJNDAEL_128去,其中iv大小是16个字符,但我不能在256上这样做-iv是32。我不想使用go_mcrypt因为它对libcryptheader很严格,所以我试过了在CBC模式下使用goclassicencryptlibsAES密码,但在256上它提示IV长度...phpIV有32个字符而不是预期的16个字符..php部分运行良好...private$CIPHER_KEY="12345678901234567890123456789012";pri

Vb.net 到 golang AES

我正在尝试将函数加密例程从VB转换为Golang。我的Go路由返回我传递给它的任何值的十六进制长度,但VB例程总是返回32的长度。有人可以告诉我我做错了什么吗?VB:FunctionencryptString(ByValsourceAsString,ByValkeyAsByte(),ByValIVAsByte())AsByte()DimarrayAsByte()=NothingUsingaesManagedAsSystem.Security.Cryptography.AesManaged=NewSystem.Security.Cryptography.AesManaged()aesMa