混淆/随机化字符串

Nat*_*han 1 .net c# encryption obfuscation winforms

我如何处理混淆文本,因此读取文本文件的用户无法读取,但我的程序仍然可以读取它?基本上,我会True*True*False*True*False*False*False*True*False*true*在文本文件中有类似的东西,我需要它看起来很疯狂.

我知道如何从文件中获取文本并写入文件和所有内容,我只需要弄清楚如何对字符串进行模糊处理并对其进行去混淆.这可能没有进入所有疯狂的加密东西吗?我认为AES和其他加密方法都是矫枉过正,因为在我的程序中,这些信息并不是绝密或其他什么,它可以在程序中查看.我只是不希望它直接通过文件编辑.

谢谢一堆:D

弥敦道

Sta*_*tan 7

这可能没有进入所有疯狂的加密东西吗?

当然,但如果用户甚至远程知道他正在做什么,他将能够毫无问题地解码它.

// Encode
var bytes = Encoding.UTF8.GetBytes("true*false*true");
var base64 = Convert.ToBase64String(bytes);

// Decode
var data = Convert.FromBase64String(base64);
var decodedString = Encoding.UTF8.GetString(data); // get string and not bytes, thanks trope
Run Code Online (Sandbox Code Playgroud)

  • 对于记录,考虑到所描述的OP的情况,即使使用加密也不安全,好像程序可以访问私钥,因此用户也可以.你可以让它更难以访问,但实际上不可能让它无法访问. (2认同)
  • 当然:string decodingString = Encoding.UTF8.GetString(data); (2认同)
  • @KingKing当给我私钥时,是的,我可以毫无问题地破解任何加密的字符串,而且非常有效.这里的要点是应用程序无法"隐藏"它用于加密的密钥.程序可以访问它的任何地方,用户都可以访问它.现在,如果代码在某个服务器上运行,或者调用某个Web服务来进行加密,那么这是完全不同的; 在这些情况下,用户将无法访问密钥. (2认同)