C# 在结对编程时,我可以使用任何基本的字符串混淆吗?

C# 在结对编程时,我可以使用任何基本的字符串混淆吗?,c#,passwords,obfuscation,C#,Passwords,Obfuscation,在与数据库系统配对编程时,有时我们会临时硬编码凭证(通常是我们自己的帐户),这会导致合作伙伴在屏幕上显示密码时试图将目光移开时有点尴尬。有没有简单的方法可以使用基本的模糊处理(即rot13)来硬编码密码,而不用其他开发人员快速查看和查看我的密码 它不需要是安全的。它只需要润滑社会方面。我不想要任何涉及超级安全加密或从文件中读取密码等的复杂内容。这必须在动态编码时快速实现(即最多10秒)。理想情况下,我想要的是: string password = string.rot13("zlcnffjbeq

在与数据库系统配对编程时,有时我们会临时硬编码凭证(通常是我们自己的帐户),这会导致合作伙伴在屏幕上显示密码时试图将目光移开时有点尴尬。有没有简单的方法可以使用基本的模糊处理(即rot13)来硬编码密码,而不用其他开发人员快速查看和查看我的密码

它不需要是安全的。它只需要润滑社会方面。我不想要任何涉及超级安全加密或从文件中读取密码等的复杂内容。这必须在动态编码时快速实现(即最多10秒)。理想情况下,我想要的是:

string password = string.rot13("zlcnffjbeq");
类似的东西已经存在了吗?

您可以使用并将base64版本的密码保存在方便剪切和粘贴的地方,记住,如果您的系统管理员发现了这一点,他们会非常生气。imo认为,评论(@Oli/@CodeCaster)中的两个建议都比这更可取

这需要更多的工作,但可以说是一个平衡的解决方案,满足您的需求,并具有一定的安全性

.NET Framework提供对数据保护API(DPAPI)的访问, 它允许您使用当前数据库中的信息加密数据 用户帐户或计算机。当您使用DPAPI时,您可以减轻 显式生成和存储加密数据的难题 钥匙


我建议将您的密码存储在配置文件中。对于源代码管理,请使用虚拟源代码。然后,在PC上获取最新版本的配置文件后,您可以通过添加密码来修改配置。

要为Windows集成安全配置SQL Server

  • 从Windows开始菜单中,选择Microsoft SQL Server,然后选择企业管理器

  • 打开服务器的节点,并展开要授予用户权限的数据库的节点

  • 右键单击“用户”节点并选择“新建数据库用户”

  • 在“数据库用户属性”对话框中,在“登录名”框中输入域\用户名,然后单击“确定”。此外,配置SQL Server以允许所有域用户访问数据库


  • 从。连接字符串变成
    Server=x;初始目录=y;集成安全性=true
    而不是
    服务器=x;初始目录=y;用户=你;Pwd=yourspassword

    也许您可以将密码存储在如下的字符串变量中

    /* Variable that stores the password */                                             string pwd = "12345";
    
    string password = string.rot13(pwd);
    
    并将其从编辑器的可视范围中移出。这将是解决你问题的正确方法


    然后,您可以在代码中的其他地方使用字符串变量,除非他向右滚动,否则没有人可以看到您的密码

    更好的解决方案是设置测试用户帐户,而不是使用您自己的凭据访问数据库等。或者简单地使用集成安全,您可以将您的用户帐户映射到数据库用户帐户。这些解决方案都是针对实现的生产解决方案,而不是我想要的。我们的生产代码有更复杂的安全性,我感兴趣的是在一次性的尖峰测试工作中实现(最多需要10秒)非常快的东西来测试组件交互。我不想更改数据库的内容或对windows帐户进行故障排除(特别是在虚拟机上跨域工作时)@MikeParker如果凭据仅用于非prod数据库,那么您不应该关心您的合作伙伴是否看到它们;这些证件不应该有什么问题。如果这些凭证也用于prod系统,并且您的合作伙伴不“完全信任”,因为如果他拥有您的凭证,您可能会担心他使用您的凭证,那么您确实应该像处理生产环境一样处理此问题。如果我不信任我的配对编程合作伙伴,我就不会在他面前硬编码密码,我需要一种更严格的方法来隐藏它们。然而,这并不是说我们已经事先同意分享我们的密码。如果他知道这个密码,这其实不是什么问题,但如果至少有一些基本的模糊处理作为一种象征性的姿态,那会感觉更舒服。啊,我明白你的意思,在这行的开头加上很多空格。有趣的想法:)