【问题标题】:Issue to decrypting string解密字符串的问题
【发布时间】:2014-11-04 12:43:46
【问题描述】:

我在一个项目中工作,在某些时候,我必须解密像 s?\a?B???p????? 这样的字符串,但我不知道使用了哪种类型的编码。

这里是要解码的原始字符串:c58HzUKIBYUfh3DVm/qa3Q==

string base64Encoded = "c58HzUKIBYUfh3DVm/qa3Q==";
string base64Decoded;
byte[] data = System.Convert.FromBase64String(base64Encoded);
base64Decoded = System.Text.ASCIIEncoding.ASCII.GetString(data);

而这个s?\a?B???p????? 就是结果。

有人可以帮助我吗?任何类型的帮助我都会很高兴!

谢谢!

【问题讨论】:

  • 人们会期望Encoding.UTF8.GetString(base64Encoded); 可以工作,但这会导致输入垃圾字符串。你确定base64是编码文本吗? - 你说 enctypted - 你是什么意思?
  • 你说你必须解密它们。没有任何字节解密的迹象。你错过了一步吗? Base64 通常不被视为加密,只是对字节执行的操作,以便将它们保存为字符串。我的猜测是,你错过了实际的解密。
  • 哦,好吧,正如您所见,英语不是我的母语,有时我会感到困惑。亚历克斯,这是我的疑问,我不知道使用了哪种类型的编码!如果我在 base64 中使用任何字符串,那么该代码就可以工作。我需要知道他们用什么来格式化这样的字符串:c58HzUKIBYUfh3DVm/qa3Q=="。解密的原始值是 teste1234!

标签: c# encryption encoding base64 decoding


【解决方案1】:

输出为 16 个字节。这正是 ECB 或 CBC 模式下块密码的输出,块大小为 8 或 16 字节。所以你得到的是密文,它看起来像随机字节。随机字节不能直接视为文本,因此有问号。您需要使用密钥解密以获取明文,该明文应该可以作为文本查看。

【讨论】:

  • 他们在 ECB 中使用了河豚算法,你是对的。感谢您的帮助!
猜你喜欢
  • 2013-06-11
  • 1970-01-01
  • 2020-08-04
  • 2019-11-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多