C# C中两个加密字符串的简单连接#
我有两个字符串,它们用来自接受答案的代码加密。 我想在其他字符串中连接它们,这将很容易解密回两个原始加密字符串。我认为:C# C中两个加密字符串的简单连接#,c#,string,encryption,connection,C#,String,Encryption,Connection,我有两个字符串,它们用来自接受答案的代码加密。 我想在其他字符串中连接它们,这将很容易解密回两个原始加密字符串。我认为: encrypted_string_1 + encryptedstring_2 这是个坏主意。如果您可以识别一个分隔符(例如“~”),而该分隔符从未作为加密方法的输出生成,那么您可以使用该分隔符: const char sep = '~'; string combined = encrypted_string_1 + sep + encryptedstring_2; 然后再
encrypted_string_1 + encryptedstring_2
这是个坏主意。如果您可以识别一个分隔符(例如“~”),而该分隔符从未作为加密方法的输出生成,那么您可以使用该分隔符:
const char sep = '~';
string combined = encrypted_string_1 + sep + encryptedstring_2;
然后再拆分它:
string[] parts = combined.Split(sep);
然后就可以解密了
编辑:Encrypt()的输出已进行base-64编码,这将生成[1] 大写字符“A”至“Z”、小写字符“A”至“Z”、数字“0”至“9”以及符号“+”和“/”。无值字符“=”用于尾随填充 因此,任何其他字符都可以用作分隔符
[1] 请参见您的问题不清楚。你到底想做什么?你是对的,在加密时将它们连接起来是个坏主意。即使你只有两个纯文本,比如说
“AB”
和“C”
,并且你已经将它们组合成“ABC”
,你怎么能将它们拆分回来呢?由于和“ABC”,“A”
和“BC”
,“AB”
和“C”
,“ABC”
和”
有可能找到一个定界符,比如加密的字符串\u 1+'\124;'+加密的字符串\u 2
除非您有一个字符计数,允许您在解密之前分离两个字符串,否则无法组合加密的字符串。为什么需要将两个加密的字符串连接在一起?是不是要把它们放在某个地方?闻起来好像有什么问题,这是解决问题的方法。Downvoter,请解释一下?我认为,这是个好主意,但如何找到分隔符?如果你将加密字符串转换为base 64,有很多选择请参阅我的编辑谢谢,这就是我的意思。