我正在寻找一种加密方法来加密字符串。重要的是输出结果(由于某些原因)。安全性不是很重要,但速度很重要。我正在测试一些算法,就我而言,在输出结果中没有像“+”和“=”这样的字符非常重要。是否可以处理它,如果可以,我可以使用哪种加密算法或方法?
2 回答

肥皂起泡泡
TA贡献1829条经验 获得超6个赞
“+”和“=”的问题是由于加密而拥有的字节数组正在转换为 Base64 字符串(类似于“=”和“+”)。将其转换为十六进制字符串(其中所有字符都是 0-9 和 AF)。看看:如何将字节数组转换为十六进制字符串,反之亦然?.
至于加密...
在 C# 中加密很容易(看看 System.Security.Cryptography 中的算法)。管理密钥是棘手的部分。您确实需要在用例中考虑一下。

aluckdog
TA贡献1847条经验 获得超7个赞
如果您将转义和加密分开,您可以使用您喜欢的任何加密。获得加密字符串后,您可以使用非常简单的转义,例如:
return encrypted.Replace("\"", "\"\"") // \ -> \\
.Replace("+", "\"Plus") // + -> \Plus
.Replace("=", "\"Eq"); // = -> \Eq
在解密之前,您必须取消转义此结果:
return escaped.Replace("\"Eq", "=")
.Replace("\"Plus", "+")
.Replace("\"\"", "\"");
Whereencrypted和escaped也可以是StringBuilder实例。
- 2 回答
- 0 关注
- 108 浏览
添加回答
举报
0/150
提交
取消