草庐IT

AES_cbc_encrypt

全部标签

node.js - Golang 从 NodeJS 解密 AES 256 CBC base64

这是我在Node.js中的内容:varcrypto=require('crypto')functionencryptstring(str){varcipher=crypto.createCipheriv('aes-256-cbc','NFd6N3v1nbL47FK0xpZjxZ7NY4fYpNYd','TestingIV1234567'),encrypted=cipher.update(str,'utf-8','base64');encrypted+=cipher.final('base64');returnencrypted;}console.log(encryptstring("T

javascript - AES-CTR 在 Go 中加密并在 CryptoJS 中解密

我在使用CryptoJS解密在Go语言中加密的文本时遇到问题。这是Go代码:https://play.golang.org/p/xCbl48T_iNpackagemainimport("crypto/aes""crypto/cipher""encoding/base64""fmt")funcmain(){key:=[]byte("1234567890123456")plaintext:=[]byte("textcanbearandomlenght")block,err:=aes.NewCipher(key)iferr!=nil{panic(err)}//TheIVneedstobeun

security - 我使用密码脚本加密的安全性如何? (Golang, AES256, pbkdf2, hmac)

首先,我想说这只是一个学习练习,我不打算在生产中使用它。我用Golang写了一个小应用程序,有两个函数:encrypt(plaintextstring,passwordstring)和decrypt(encryptedstring,passwordstring)加密步骤为:随机生成256位用作盐生成128位用作初始化向量使用PDKDF2从密码和盐生成32位key用key和明文生成一个32位的HMAC,并将其附加到明文的开头使用CFB模式的AES对hmac+明文进行加密返回的字节数组如下所示:[256bitsalt][128bitiv]encrypted([256bithmac][pla

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

c# - CSharp 中的密码代码类似于 Go 中的代码(AES、CFB、XorKeyStream)

我在Go中有加密代码,但我很难在CSharp中找到类似的代码。我正在考虑自己实现XorKeyStream,但有人告诉我,如果我编写自己的加密代码,就会存在法律问题。我相信CSharp中一定有类似的代码。packagemainimport("crypto/aes""crypto/cipher""fmt")funcmain(){k1:=[]byte("0123456789abcdef")r1:=[]byte("1234567890abcdef")data:=[]byte("0123456789")fmt.Printf("original%x%s\n",data,string(data)){

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的那些分组密码“模式”可以解决这些问题吗?所以我想知