- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试转换Crypt Lib in js的逻辑,我有现有的android应用程序,并且该API位于c Sharp中,我想转换加密和解密逻辑。
我尝试了多种版本,您可以检查代码:Tried code
我有一个要解密的样本数据,数据是:
{"Data":"bvtkHfZiTsY0CX6QmHhCboBwXeY9RZVPpdhhdIy6aSwCTVI7YiEGha1aXTIKY4BocGdNIbWkreQHZcTk4WE6F2tQLoVyWERYCGZotbDzxxs=","IV":"Vmr-uU5mA2_Zr_13"}
在这里,我在Data和IV中有加密的数据,因此当我尝试解密此数据时,找不到任何解决方案。所有的加密和解密功能都在csharp和android代码中。但是我想在golang中转换相同的逻辑。
iv := []byte("Vmr-uU5mA2_Zr_13")
key := []byte("<Secret_Key")
text := []byte("bvtkHfZiTsY0CX6QmHhCboBwXeY9RZVPpdhhdIy6aSwCTVI7YiEGha1aXTIKY4BocGdNIbWkreQHZcTk4WE6F2tQLoVyWERYCGZotbDzxxs=")
cipherBlock, err := aes.NewCipher(key)
if err != nil {
log.Fatal(err)
}
cipher.NewCBCDecrypter(cipherBlock, iv).CryptBlocks(text, text)
fmt.Println(string(text))
完整的
link代码,我得到了错误:
crypto/aes: invalid key size 64
最佳答案
看来您需要将key
和text
字符串正确解码为 byte slice ,而不仅仅是将其转换。下面的代码有效,尽管我不确定解码后的消息应该是什么样子...
package main
import (
"encoding/hex"
"encoding/base64"
"crypto/cipher"
"crypto/sha256"
"crypto/aes"
)
func main() {
iv := "Vmr-uU5mA2_Zr_13"
key := "<Secret_Key>"
ciphertext := "bvtkHfZiTsY0CX6QmHhCboBwXeY9RZVPpdhhdIy6aSwCTVI7YiEGha1aXTIKY4BocGdNIbWkreQHZcTk4WE6F2tQLoVyWERYCGZotbDzxxs="
hash := sha256.Sum256([]byte(key))
key = hex.EncodeToString(hash[:])[:32]
btext, err := base64.StdEncoding.DecodeString(ciphertext)
if err != nil {
println("Error decoding cipertext: ", err.Error())
return
}
aesCipher, err := aes.NewCipher([]byte(key))
if err != nil {
println("Error creating cipher: ", err.Error())
return
}
cipher.NewCBCDecrypter(aesCipher, []byte(iv)).
CryptBlocks(btext, btext)
println("Result: ", string(btext))
}
关于go - 跨平台AES CryptLib,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64782331/
你好。 首先:我是 stackOverflow 和我正在谈论的主题的新手...... 我试图避免使用 cryptlib我的 Java 应用程序中用于 TripleDES 加密的库(现在我使用 AES
我正在尝试转换Crypt Lib in js的逻辑,我有现有的android应用程序,并且该API位于c Sharp中,我想转换加密和解密逻辑。 我尝试了多种版本,您可以检查代码:Tried code
我正在使用 Cross-Platform-AES用于我的 swift 应用程序中的 AES 加密/解密。我的加密工作正常。但是当我尝试解密服务返回值时,它没有给我正确的结果。这是我解密的方式。 pub
我实际上是在编程和端到端加密日历。为此,我使用 cryptlib .我或多或少复制了 manual 中的代码.但总是,当我尝试生成根 ca 时。它在 cryptSignCert() 处失败,错误代码为
我已经从官方网站下载了 Crypto++ 7.0.0,用它构建了一个静态库,包括 cryptlib 头文件: #include "cryptlib.h" 当我尝试编译我的程序时: gcc main.c
我的应用程序使用 AES 256 加密来加密字符串。之前使用的相同代码会生成不同的结果。这个问题在 iOS 13 发布时就开始出现。这种情况仅发生在发布到商店或使用 Xcode 11 构建的应用程序中
关闭。这个问题是opinion-based .它目前不接受答案。 想要改进这个问题? 更新问题,以便 editing this post 可以用事实和引用来回答它. 关闭 8 年前。 Improve
在Visual Studio上编译项目时,出现上述错误。我的情况有一个奇怪的地方,与众不同的是,它可以在我的个人笔记本电脑上工作,但不能工作。 我将整个项目保存在Dropbox中,因为有时我会在工作状
编辑:好的,我解决了我最初概述的无法找到 curl 和 cryptlib header 的问题。但是,在通过使用 macports 安装 curl 和 libcryptopp 解决了这些问题之后,我在
我是一名优秀的程序员,十分优秀!