草庐IT

异或解密

全部标签

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

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

go - 如何解密在 Go 中使用固定盐生成的字符串?

我有大量使用Jasypt加密的数据,我需要在Go上对其进行解密。固定盐和随机盐。我找到了thisrepo带有BasicTextEncryptor的工作端口。它适用于我使用密码和随机盐加密的数据。我尝试用我的固定字符串替换随机盐,虽然我没有收到任何错误,但它没有返回实际的加密内容。funcFDecrypt(password,cipherText,saltstring,obtenationIterationsint)(string,error){msgBytes,err:=base64.StdEncoding.DecodeString(cipherText)iferr!=nil{retur

http - 解密后的反向代理服务文件

我需要将*os.File放入request.Body中,但我不知道如何处理文件描述符的关闭(以及临时文件的消除)。我无法使用http.ServeFile来提供文件。我有3个软件:A)用户界面(我无法编辑)B)提供文件的后端C)一个http反向代理,其作用是签署从A到B的请求,加密从A到B的文件,以及解密从B到A的文件。软件A期望收到解密文件内容的主体。我知道使用B解密目录中的文件然后让A打开它会更容易,但不幸的是我无法编辑需要请求正文中的文件的A。软件的工作流程如下:软件A向C发送请求,C签署请求并将其转发给B,然后C继续解密文件,并且必须在请求中将解密的内容提供给Abody。type

ios - 在 Objective-C 中使用 CCCryptor 解密在 Go 中使用 CFB 加密的数据

我已经研究了很长时间,但卡住了。我正在编写一个iOS应用程序,它从Go服务器端应用程序获取AES加密数据并对其进行解密。我在iOS端使用CCCryptor进行解密。但是,就我的生活而言,我无法获得明文。有一个有效的Java/Android实现,它在Go端可以很好地解密,所以我很确定这与我的CCCryptor设置有关。我实际上在解密时获得了0成功状态,但是获取输出并执行NSStringinitWithBytes给我一个空字符串。注意:我只写iOS端。加密的Go代码:funcencrypt(key,text[]byte)[]byte{block,err:=aes.NewCipher(key

go - 如何在 Golang 中对两个字符串数组进行异或?

假设我有两个字符串数组。A=["ab","cd","ef","gh"]B=["ef","gh"]我想做C=A^B其中C=["ab","cd"]我知道Golang允许按字节异或,但我在文档中没有看到任何关于字符串数组的信息。我该怎么做呢?也许有人已经为此制作了实用程序? 最佳答案 这看起来不像是Go标准库中的东西,但这里有一些代码可以做到这一点:packagemainimport("fmt")funcmain(){A:=[]string{"ab","cd","ef","gh"}B:=[]string{"ef","gh"}fmt.Pri

ssl - 通过存储与 Wireshark 一起使用的 SSL key 在 golang 中解密 TLS

我正在尝试通过提供tls.Config来建立TLS连接包含Rand的结构应始终返回相同的字段int调用他们时Read方法,参见这里的文档:https://golang.org/pkg/crypto/tls/#Config我写了这个构建器:funcnewZeroRand()*rand.Rand{returnrand.New(rand.NewSource(0))}并进行测试以确保rand.Rand总是返回相同的int什么时候Read被多次调用,注意不同的输入参数"foo"和"bar"提供相同的输出:funcTestPredictableZeroRandGenerator(t*testing

node.js - Nodejs/Golang aes 256解密

我有一个加密的字符串,我可以使用以下代码在nodejs中对其进行解密letdecrypt=crypto.createDecipheriv('aes-256-cbc-hmac-sha1',derived,iv);decrypt.setAutoPadding(false);letdecrypted=decrypt.update(new_buf,'binary','utf8')+decrypt.final('utf8');我必须能够在go程序中解密相同的缓冲区,所以我写了这个fmt.Printf("bufsize=%d\n",len(derivedKey))block,err:=aes.Ne

go - 无法解密二进制文件

我一直在尝试使用GPG公钥和go的openpgp库来加密docx文件。它加密文档,但我无法使用我的私钥解密它。已经尝试对纯文本文件执行相同的操作并且解密工作没有任何问题。我在这里错过了什么?packagemainimport("golang.org/x/crypto/openpgp""bytes""io/ioutil""fmt""os")funcmain(){entitylist,_:=openpgp.ReadArmoredKeyRing(bytes.NewBufferString(...))buf:=new(bytes.Buffer)w,_:=openpgp.Encrypt(buf,

python - python中的AES-GCM解密

我正在尝试解密从AES_GCM生成的密文。密文是从golang中的“crypto/aes”库生成的。现在,我正在尝试使用cryptodome库破译python中的加密文本。funcAESEncryption(key[]byte,plaintext[]byte)([]byte,error){c,err:=aes.NewCipher(key)iferr!=nil{log.Printf("ErrorocurredingeneratingAESkey%s",err)returnnil,err}gcm,err:=cipher.NewGCM(c)iferr!=nil{returnnil,err}n