为了账号安全,请及时绑定邮箱和手机立即绑定

如何在 c# 中加密字符串但具有特殊的输出结果?

如何在 c# 中加密字符串但具有特殊的输出结果?

C#
一只斗牛犬 2022-10-15 15:12:43
我正在寻找一种加密方法来加密字符串。重要的是输出结果(由于某些原因)。安全性不是很重要,但速度很重要。我正在测试一些算法,就我而言,在输出结果中没有像“+”和“=”这样的字符非常重要。是否可以处理它,如果可以,我可以使用哪种加密算法或方法?
查看完整描述

2 回答

?
肥皂起泡泡

TA贡献1829条经验 获得超6个赞

“+”和“=”的问题是由于加密而拥有的字节数组正在转换为 Base64 字符串(类似于“=”和“+”)。将其转换为十六进制字符串(其中所有字符都是 0-9 和 AF)。看看:如何将字节数组转换为十六进制字符串,反之亦然?.

至于加密...

在 C# 中加密很容易(看看 System.Security.Cryptography 中的算法)。管理密钥是棘手的部分。您确实需要在用例中考虑一下。


查看完整回答
反对 回复 2022-10-15
?
aluckdog

TA贡献1847条经验 获得超7个赞

如果您将转义和加密分开,您可以使用您喜欢的任何加密。获得加密字符串后,您可以使用非常简单的转义,例如:


return encrypted.Replace("\"", "\"\"") // \ -> \\

       .Replace("+", "\"Plus")         // + -> \Plus

       .Replace("=", "\"Eq");          // = -> \Eq

在解密之前,您必须取消转义此结果:


return escaped.Replace("\"Eq", "=")

       .Replace("\"Plus", "+")

       .Replace("\"\"", "\"");

Whereencrypted和escaped也可以是StringBuilder实例。


查看完整回答
反对 回复 2022-10-15
  • 2 回答
  • 0 关注
  • 108 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号