C# 在结对编程时,我可以使用任何基本的字符串混淆吗?
在与数据库系统配对编程时,有时我们会临时硬编码凭证(通常是我们自己的帐户),这会导致合作伙伴在屏幕上显示密码时试图将目光移开时有点尴尬。有没有简单的方法可以使用基本的模糊处理(即rot13)来硬编码密码,而不用其他开发人员快速查看和查看我的密码 它不需要是安全的。它只需要润滑社会方面。我不想要任何涉及超级安全加密或从文件中读取密码等的复杂内容。这必须在动态编码时快速实现(即最多10秒)。理想情况下,我想要的是:C# 在结对编程时,我可以使用任何基本的字符串混淆吗?,c#,passwords,obfuscation,C#,Passwords,Obfuscation,在与数据库系统配对编程时,有时我们会临时硬编码凭证(通常是我们自己的帐户),这会导致合作伙伴在屏幕上显示密码时试图将目光移开时有点尴尬。有没有简单的方法可以使用基本的模糊处理(即rot13)来硬编码密码,而不用其他开发人员快速查看和查看我的密码 它不需要是安全的。它只需要润滑社会方面。我不想要任何涉及超级安全加密或从文件中读取密码等的复杂内容。这必须在动态编码时快速实现(即最多10秒)。理想情况下,我想要的是: string password = string.rot13("zlcnffjbeq
string password = string.rot13("zlcnffjbeq");
类似的东西已经存在了吗?您可以使用并将base64版本的密码保存在方便剪切和粘贴的地方,记住,如果您的系统管理员发现了这一点,他们会非常生气。imo认为,评论(@Oli/@CodeCaster)中的两个建议都比这更可取
这需要更多的工作,但可以说是一个平衡的解决方案,满足您的需求,并具有一定的安全性
.NET Framework提供对数据保护API(DPAPI)的访问,
它允许您使用当前数据库中的信息加密数据
用户帐户或计算机。当您使用DPAPI时,您可以减轻
显式生成和存储加密数据的难题
钥匙
我建议将您的密码存储在配置文件中。对于源代码管理,请使用虚拟源代码。然后,在PC上获取最新版本的配置文件后,您可以通过添加密码来修改配置。要为Windows集成安全配置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系统,并且您的合作伙伴不“完全信任”,因为如果他拥有您的凭证,您可能会担心他使用您的凭证,那么您确实应该像处理生产环境一样处理此问题。如果我不信任我的配对编程合作伙伴,我就不会在他面前硬编码密码,我需要一种更严格的方法来隐藏它们。然而,这并不是说我们已经事先同意分享我们的密码。如果他知道这个密码,这其实不是什么问题,但如果至少有一些基本的模糊处理作为一种象征性的姿态,那会感觉更舒服。啊,我明白你的意思,在这行的开头加上很多空格。有趣的想法:)