【问题标题】:Chars scrambling (C# and Javascript) [closed]字符加扰(C# 和 Javascript)[关闭]
【发布时间】:2011-08-08 11:30:28
【问题描述】:

我需要在 word 中打乱字符。而且这种加扰绝不能是随机的。换句话说,每次加扰(在同一个词上)新结果必须等于上次加扰结果(在同一个词上)。非常简单的例子是 XOR。但是 XOR 很容易解码,我需要更多的力量。你能推荐一个同样适用于 C# 和 Javascript 的库吗?

感谢您的建议!:)

【问题讨论】:

  • 担心这样一个简单密码的强度似乎毫无意义......为什么不直接使用 ROT13 运行呢?任何符合您规范的算法都不是真的“更强”......这不是修辞:理解上下文/思维是建议合适设备的关键;即你试图保护这些数据免受什么“攻击”?
  • 您不需要在 word 中打乱字符。您要么需要保存加密的 Word 文档(请参阅 pgp),要么需要 Word 文档以外的其他内容。所以真正的问题是:为什么认为你需要这样做?
  • 谢谢!我想在构建 md5 之前争先恐后;)

标签: c# javascript letters chars scramble


【解决方案1】:

您可以使用任何内置的 .NET 类来生成随机数并使用它们来打乱您的字符串。对于所有后续加扰尝试,您可以使用第一次加扰操作的结果。这假设第一次调用的结果存储在某个地方。

【讨论】:

    【解决方案2】:

    虽然我不太同意您尝试做的事情,here's a link to MD5 javascript library(假设您尝试做的是某种加密)。至于C#部分,it's a built in feature

    【讨论】:

    • 谢谢!我想在构建 md5 之前争先恐后;)
    【解决方案3】:

    如果你真的想打乱字符,你可以使用带有固定种子的random

    string input = "hello";
    char[] chars = input.ToArray();
    Random r = new Random(2011); // Random has a fixed seed, so it will always return same numbers (within same input)
    for (int i = 0 ; i < chars.Length ; i++)
    {
        int randomIndex = r.Next(0, chars.Length);
        char temp = chars[randomIndex];
        chars[randomIndex] = chars[i];
        chars[i] = temp;
    }
    return new string(chars);
    

    【讨论】:

    • 很好的答案,它使用一个随机对象,但不适用于 Javascript。我会使用字符串中的第一个字符来创建随机算法。
    • 同意评论,你必须在javascript中找到/编写Random函数,它的行为与C#类似。
    猜你喜欢
    • 1970-01-01
    • 2017-03-22
    • 1970-01-01
    • 2021-05-11
    • 2015-05-05
    • 2013-06-27
    • 2014-09-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多