C# 安全问题

C# 安全问题,c#,encryption,C#,Encryption,这种密码检查算法在低安全性环境(如本地网络)中使用安全吗 static string keys = "qwertyuiopüõasdfghjklöäzxcvbnmQWERTYUIOPÜÄÖLKJHGFDSAZXCVBNM"; static Int64 key = 0; public static bool check(string input) { string tmp = ""; string encAnswer = "ỬốỒởỐỚ";

这种密码检查算法在低安全性环境(如本地网络)中使用安全吗

 static string keys = "qwertyuiopüõasdfghjklöäzxcvbnmQWERTYUIOPÜÄÖLKJHGFDSAZXCVBNM";
    static Int64 key = 0;
    public static bool check(string input)
    {
        string tmp = "";
        string encAnswer = "ỬốỒởỐỚ";
        for (int i = 0; i < input.Length; i++)
        {
            tmp += keys.IndexOf(input[i]).ToString();
        }
        key = Int64.Parse(tmp);
        string res = "";
        char c;
        for (int i = 0; i < input.Length; i++)
        {
            c = input[i];
            c = (char)(c ^ key);
            res += c;
        }
        if (res == encAnswer)
            return true;
        return false;
    }
static string keys=“qwertyuiopüasdfghjkläzxcvnmqwertyuiopÜ196Ölkjhgfdsazxcvnm”;
静态Int64键=0;
公共静态布尔检查(字符串输入)
{
字符串tmp=“”;
字符串encAnswer=”ỬốỒởỐỚ";
for(int i=0;i
即使在安全性较低的环境中,您也应该坚持使用哈希算法

注意:您将无法使用哈希算法恢复原始密码


编辑:正如OP所指出的,仅仅使用散列算法是不够的。您必须添加一种盐以使其更难破解。这里可以找到一些示例:

您应该坚持使用散列算法,即使在安全性较低的环境中。请看

注意:您将无法使用哈希算法恢复原始密码


编辑:正如OP所指出的,仅仅使用散列算法是不够的。你必须添加一种盐以使其更难被打破。这里可以找到一些例子:

它大致相当于公寓门上用作“锁”的一条胶带。如果你的“安全性”很低“要求,你为什么不完全跳过密码检查呢?

它大致相当于公寓门上用作“锁”的一条胶带。如果您有“低安全性”要求,为什么不完全跳过密码检查?

混淆不是安全性。

你所描述的异或机制是未来痛苦和尴尬的秘诀。您可能应该避免使用它,并使用.NET和Windows平台的内置功能来实现安全性

您所描述的安全方法的问题是,对系统的大多数攻击都发生在组织内部。您觉得应用程序需要密码机制这一事实意味着安全性是一个相关的考虑因素。如果安全确实是相关的,那么为什么选择安全的假象呢?花多一点努力,得到真正的东西

这里有一些理由让你跑完九码:

  • 打破XOR“加密”方案的技术在互联网上比比皆是,打破这种方案只需要很少的知识和访问

  • 如果成功,您的应用程序可能会拥有比您最初想象的更多的用户-不要相信所有这些用户都会友好并遵守规则

  • 一旦投入生产,对现有系统的更改就很难证明是正确的,并且比代码发布之前更难进行更改。添加缺少的功能比更改现有功能更容易

  • 信任很难(或不可能)恢复。违反安全性的代价通常与实现安全性的代价不成比例。一旦对系统的安全性或保护用户身份/信息的能力失去信任,无论应用程序功能有多好,人们都会对整个系统失去信心


  • 混淆不是安全性。

    你所描述的异或机制是未来痛苦和尴尬的秘诀。您可能应该避免使用它,并使用.NET和Windows平台的内置功能来实现安全性

    您所描述的安全方法的问题是,对系统的大多数攻击都发生在组织内部。您觉得应用程序需要密码机制这一事实意味着安全性是一个相关的考虑因素。如果安全确实是相关的,那么为什么选择安全的假象呢?花多一点努力,得到真正的东西

    这里有一些理由让你跑完九码:

  • 打破XOR“加密”方案的技术在互联网上比比皆是,打破这种方案只需要很少的知识和访问

  • 如果成功,您的应用程序可能会拥有比您最初想象的更多的用户-不要相信所有这些用户都会友好并遵守规则

  • 一旦投入生产,对现有系统的更改就很难证明是正确的,并且比代码发布之前更难进行更改。添加缺少的功能比更改现有功能更容易

  • 信任很难(或不可能)恢复。违反安全性的代价通常与实现安全性的代价不成比例。一旦对系统的安全性或保护用户身份/信息的能力失去信任,无论应用程序功能有多好,人们都会对整个系统失去信心


  • 我刚刚发现,有相当广泛的数据库与哈希代码,所以这使得鲁本斯Farias解决方案对我来说毫无用处


    甚至关灯也可能是家里的安全隐患。特别是当窃贼已经破门而入的时候。

    我刚刚发现有相当广泛的带有哈希代码的数据库,所以这使得Rubens Farias解决方案对我来说毫无用处


    甚至关灯也可能是家里的安全隐患。特别是当窃贼已经闯入时。

    我同意散列方法,但即使在安全性较低的环境中,我也会避免使用MD5,因为现在创建散列冲突非常容易。我会使用SHA-256 Instedi同意散列方法,但即使对于低安全性环境,我也会避免使用MD5,因为现在创建散列方法非常容易