相关疑难解决方法(0)

为什么char []比字符串更适合密码?

在Swing中,密码字段具有getPassword()(返回char[])方法而不是通常getText()(返回String)方法.同样,我遇到了一个不使用String来处理密码的建议.

为什么String在密码方面会对安全构成威胁?使用感觉不方便char[].

java security string passwords char

3298
推荐指数
16
解决办法
38万
查看次数

我什么时候需要.NET中的SecureString?

我试图了解.NET的SecureString的目的.来自MSDN:

System.String类的一个实例都是不可变的,当不再需要时,不能以编程方式安排垃圾收集; 也就是说,实例在创建后是只读的,并且无法预测实例何时从计算机内存中删除.因此,如果String对象包含敏感信息(如密码,信用卡号或个人数据),则使用该信息后可能会显示该信息,因为您的应用程序无法从计算机内存中删除该数据.

SecureString对象类似于String对象,因为它具有文本值.但是,SecureString对象的值会自动加密,可以修改,直到您的应用程序将其标记为只读,并且可以通过应用程序或.NET Framework垃圾收集器从计算机内存中删除.

初始化实例或修改值时,SecureString实例的值会自动加密.您的应用程序可以呈现实例不可变,并通过调用MakeReadOnly方法防止进一步修改.

自动加密是最大的收益吗?

为什么我不能说:

SecureString password = new SecureString("password");
Run Code Online (Sandbox Code Playgroud)

代替

SecureString pass = new SecureString();
foreach (char c in "password".ToCharArray())
    pass.AppendChar(c);
Run Code Online (Sandbox Code Playgroud)

我错过了SecureString的哪个方面?

.net security encryption

179
推荐指数
8
解决办法
4万
查看次数

安全擦除内存中的密码(Python)

如何将用户输入的密码存储在内存中,并在不再需要后将其安全擦除?

详细说明,目前我们有以下代码:

username = raw_input('User name: ')
password = getpass.getpass()
mail = imaplib.IMAP4(MAIL_HOST)
mail.login(username, password)
Run Code Online (Sandbox Code Playgroud)

在调用该login方法之后,我们需要做些什么来填充包含带有乱码的密码的内存区域,以便有人无法通过执行核心转储来恢复密码?

有一个类似的问题,但它是在Java中,解决方案使用字符数组: 在创建帐户时,如何在内存中安全地存储密码?

这可以用Python完成吗?

python security passwords

44
推荐指数
4
解决办法
1万
查看次数

如何确保在Java中销毁String对象?

我公司的员工需要通过我制作的程序修改SQL Server数据库中的数据.该程序首先使用Windows身份验证,我要求DBA为此特定用户提供对所述数据库的写访问权限.

他们不愿意这样做,而是给我的 Windows用户帐户提供写访问权限.

因为我相信这个人但是还不足以让他在我的会话打开的情况下工作90分钟,我只会在我的程序中添加一个登录提示,要求输入用户名和密码,然后使用它登录到SQL Server.我会登录,并相信我的应用程序让他只做他需要的东西.

然而,这会带来很小的安全风险.该密码字段教程太阳 Oracle的网站指出,密码应保持在内存中所需要的最短时间,并为此目的,该getPassword方法返回一个char[]数组,一旦你用它做,你可以零.

但是,Java的DriverManager类只接受String对象作为密码,所以一旦我完成它,我将无法处理密码.而且由于我的应用程序在分配和内存要求方面非常低,谁知道它能在内存中存活多久?如上所述,该程序将运行相当长的时间.

当然,我无法控制任何的SQL Server的JDBC类与我的密码,但我希望我能控制什么做我的密码.

有没有一种可靠的方法来破坏/清除StringJava对象?我知道两者都有点违背语言(对象破坏是非确定性的,String对象是不可变的),并且System.gc()有点不可预测,但仍然存在; 任何的想法?

java security

38
推荐指数
3
解决办法
7533
查看次数

在python中将数据标记为敏感数据

我需要在内存中短时间存储用户密码.我怎么能这样做却没有在coredumps或追溯中意外披露这些信息?有没有办法将值标记为"敏感",因此它不会被调试器保存在任何地方?

python security passwords coredump

20
推荐指数
2
解决办法
8679
查看次数

标签 统计

security ×5

passwords ×3

java ×2

python ×2

.net ×1

char ×1

coredump ×1

encryption ×1

string ×1