草庐IT

encrypt_msg

全部标签

encryption - 将 Python AES 加密路由移植到 Golang

我正在尝试将以下PythonAES文件加密例程移植到Go:defderive_key_and_iv(password,salt,key_length,iv_length):d=d_i=''whilelen(d)我编写了以下Go例程,但我不太能够让它工作。我正在尝试让加密例程在Go中工作,以便调用者在Python和C中调用解密,所以我真的只对弄清楚如何让我的Golang加密例程工作感兴趣,但为了清楚起见,我已经包含了所有Python位。我当前的Go例程如下所示:packagemainimport("crypto/aes""crypto/cipher""crypto/rand""encod

encryption - Golang 在不同的机器上生成相同的加密

我有一个使用crypto/aes加密和解密明文的go脚本。https://play.golang.org/p/le_-uuzWN4我希望这个脚本可以在不同的机器上使用并产生相同的加密文本。我认为通过自定义IV,无论在何处都能实现一致的加密。现在它在goplayground和https://repl.it/languages/go上产生不同的结果。是否有可能产生一致的加密,或者由于内部实现(如加密盐等),它总是不同的此外,IV到底是什么,我对此仍然感到困惑。该文档并没有真正解释它是什么 最佳答案 我弄清楚了为什么它每次都生成不同的密文

encryption - CryptoJS 加密 Go 解密

我有以下Go代码ciphertext:="Zff9c+F3gZu/lsARvPhpMau50KUkMAie4j8MYfb12HMWhkLqZreTk8RPbtRB7RDG3QFw7Y0FXJsCq/EBEAz//XoeSZmqZXoyq2Cx8ZV+/Rw="decodedText,_:=base64.StdEncoding.DecodeString(ciphertext)decodedIv,_:=base64.StdEncoding.DecodeString("u9CV7oR2w+IIk8R0hppxaw==")newCipher,_:=aes.NewCipher([]byte("~

encryption - go crypto/ecdsa 即使数据不同也要验证是否为真

我有一些map形式的数据,我将其转换为[]byt并对其进行签名,在验证时,即使用于验证和签名的数据不同,它也会提供True值。这是我所做的-funcmain(){n,_:=ioutil.ReadFile("privatekey")private_key,_:=x509.ParseECPrivateKey(n)public_key:=private_key.PublicKeydata:=map[string]string{"data1":"somestring","data2":"12312","data3":"34fs4",}json_data,_:=json.Marshal(data

encryption - 从文件中读入

我正致力于在Golang中制作一个基本的密码管理器,并希望能够存储使用RSA加密的密码。我的加密函数和解密函数都有效,并且会正确加密和解​​密。但是,将密码存储在文件中,然后从文件中读回密码后,解密功能将失败。我已检查以确保RSAkey的读入正确,这不是我的问题,因为RSAkey的读入工作正常。这是我将加密密码写入文件的方式ioutil.WriteFile(filename,encPassword,0644)这是我读回密码的方式encrypted,err=ioutil.ReadFile(encryptedFileName)当我运行我的程序时,我目前收到此错误代码failedindecr

encryption - 在 golang 中向 byte slice 添加填充的正确方法?

我试图在go中加密一些数据,但它几乎不是正确的cipher.BlockSize。是否有添加填充的“内置”方式,或者我应该使用函数手动添加它?现在这是我的解决方案://encrypt()encryptsthemessage,butsometimesthe//messageisn'ttheproperlength,soweaddpadding.funcencrypt(msg[]byte,key[]byte)[]byte{cipher,err:=aes.NewCipher(key)iferr!=nil{log.Fatal(err)}iflen(msg) 最佳答案

encryption - 使 GCM/CBC 密码在 golang 中流式传输

Go中的GCM和CBCAES密码不能与StreamWriter或StreamReader一起使用,这迫使我将整个文件分配到内存中。显然,这对于大文件来说并不理想。我正在考虑通过将一些固定大小的block分配到内存中并将它们提供给GCM或CBC来使它们可流式传输,但我认为这可能是个坏主意,因为它们必须有一个原因就是这样设计的。有人可以解释为什么不将整个文件分配到内存中就不能使用这些操作模式吗? 最佳答案 简单的答案-这就是他们设计API的方式。CBC和GCM是非常不同的模式。GCM是AEAD模式(带关联数据的身份验证加密)。你真的需要

encryption - openpgp golang gpg 库的问题

所以我是golang的新手,我正在努力获得一个使用openpgp加密一些文本并再次解密的工作示例。这是我目前所拥有的:(https://gist.github.com/93750a142d3de4e8fdd2.git)packagemainimport("log""bytes""code.google.com/p/go.crypto/openpgp""encoding/base64""io/ioutil""os")//creategpgkeyswith//$gpg--gen-key//ensureyoucorrectpathsandpassphraseconstmysecretstri

encryption - Golang AES CFB - 变异 IV

我用Go编写了一个客户端应用程序,它需要与服务器端的C程序进行交互。客户端执行AESCFB加密,服务器解密。不幸的是,服务器端存在重用初始化向量的错误。它尝试根据以下条件进行3次解密操作:-key1,ivkey2,iv键3、iv由于thisissueiv实际上在解密操作之间被修改。我现在的问题是如何使用Go在客户端重现此行为。通过在下面的加密函数中插入一个Println,我可以看到cfb结构,我认为它包含下一个block的修改后的IV,但因为它是一个流接口(interface),我不确定如何将它提取到一个byteslice。有什么建议吗?谢谢packagemainimport("fmt

encryption - 如何在 golang 中使用 AES256-GCM 加密文件?

AES256-GCM可以在go中实现为https://gist.github.com/cannium/c167a19030f2a3c6adbb5a5174bea3ff然而,接口(interface)cipher.AEAD的Seal方法有签名:Seal(dst,nonce,plaintext,additionalData[]byte)[]byte所以对于非常大的文件,必须将文件内容全部读入内存,这是NotAcceptable。一种可能的方法是在Seal和Open上实现Reader/Writer接口(interface),但不应该AEAD的那些分组密码“模式”可以解决这些问题吗?所以我想知