我在 Go 中有加密代码,但在 CSharp 中很难找到类似的代码。我正在讨论如何实现我自己的 XorKeyStream,但有人告诉我,如果我编写自己的加密代码,则存在法律问题。我相信 CSharp 中一定有类似的代码。
package main
import (
"crypto/aes"
"crypto/cipher"
"fmt"
)
func main() {
k1 := []byte("0123456789abcdef")
r1 := []byte("1234567890abcdef")
data := []byte("0123456789")
fmt.Printf("original %x %s\n", data, string(data))
{
block, _ := aes.NewCipher(k1)
stream := cipher.NewCFBEncrypter(block, r1)
stream.XORKeyStream(data, data)
fmt.Printf("crypted %x\n", data)
}
{
block, _ := aes.NewCipher(k1)
stream := cipher.NewCFBDecrypter(block, r1)
stream.XORKeyStream(data, data)
fmt.Printf("decrypted %x %s\n", data, string(data))
}
}
http://play.golang.org/p/EnJ56dYX_-
输出
original 30313233343536373839 0123456789
crypted 762b6dcea9c2a7460db7
decrypted 30313233343536373839 0123456789
PS 有些人将该问题标记为可能与问题重复:“C# AES:加密文件导致“要加密的数据长度无效”。错误”我在 CSharp 中寻找与 Go 中现有代码相同的代码。这个问题是关于填充的。该算法需要将异或文本的“密钥流”。这是不同的问题。
PIPIONE
千万里不及你
相关分类