Tag: encryption

如何将SecureString转换为System.String?

所有关于通过创build一个System.String来取消安全SecureString的保留 ,如何完成? 如何将一个普通的System.Security.SecureString转换为System.String? 我相信很多熟悉SecureString的人都会回应说,绝对不应该将SecureString转换为普通的.NETstring,因为它会去除所有的安全保护。 我知道 但是现在我的程序用普通的string来处理所有事情,而且我正在尝试增强它的安全性,尽pipe我将要使用一个返回SecureString的API,我并不想用它来提高我的安全性。 我知道Marshal.SecureStringToBSTR,但我不知道如何把BSTR,并使一个System.String出它。 对于那些可能要求知道为什么我会想要这样做的人,那么,我正在从用户那里获取一个密码,并将其提交为HTML表单POST,以将用户login到网站。 所以…这确实需要使用托pipe的,未encryption的缓冲区来完成。 如果我甚至可以访问非托pipe的,未encryption的缓冲区,我想我可以在networkingstream上逐字节地写数据stream,并希望能够保证整个密码的安全。 我希望至less有一个这样的情况的答案。

我应该在密码上施加最大长度吗?

我可以理解,在密码上加上一个最小长度是很有意义的(为了节省用户的时间),但是我的银行要求密码长度在6到8个字符之间,我开始怀疑… 难道这不会让暴力攻击更容易吗? (坏) 这是否意味着我的密码未encryption存储? (坏) 如果有人(希望)为他们工作的一些优秀的IT安全专家正在施加最大的密码长度,我应该考虑做类似的事情吗? 这有什么优点/缺点?

我怎样才能在Java中散列密码?

我需要哈希密码存储在数据库中。 我怎样才能在Java中做到这一点? 我希望能拿到明文密码,添加一个随机盐,然后将盐和散列的密码存储在数据库中。 然后,当用户想要login时,我可以提取他们提交的密码,从他们的账户信息中添加随机的盐,散列它,并查看它是否等同于存储的散列密码与他们的账户信息。

你如何testing公共/私人DSA密钥对?

有没有简单的方法来validation给定的私钥是否与给定的公钥相匹配? 我有几个* .pub和几个* .key文件,我需要检查哪些与哪些。 再次,这些是pub / key文件,DSA。 我真的更喜欢某种单线的…

非对称encryption中的encryption和签名有什么区别?

encryption一些数据与签署一些数据(使用RSA)有什么区别? 这是否简单地扭转了公私钥的作用? 例如,我想用我的私钥生成消息,所以只有我可能是发件人。 我希望我的公钥被用来读取消息,我不在乎谁读他们。 我希望能够encryption某些信息并将其用作我的软件的产品密钥。 我只关心我是唯一能够产生这些的人。 我想将我的公钥join我的软件来解密/读取密钥的签名。 我不在乎谁能读取密钥中的数据,我只关心我是唯一可以生成密钥的人。 在这种情况下签署有用吗?

如何使用node.js Crypto创buildHMAC-SHA1哈希?

我想创build一个“ I love cupcakes ”(用“abcdeg”键签名) 我怎样才能使用Node.js Crypto创build哈希?

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

我正在尝试.NET的SecureString的目的。 来自MSDN: System.String类的一个实例是不可变的,当不再需要时,不能以编程方式调度垃圾收集; 也就是说,实例在创build后是只读的,并且不可能预测实例何时从计算机内存中删除。 因此,如果String对象包含密码,信用卡号码或个人数据等敏感信息,则在使用该信息之后可能会泄露信息,因为您的应用程序无法从计算机内存中删除数据。 一个SecureString对象类似于一个String对象,因为它有一个文本值。 但是,SecureString对象的值会自动encryption,可以修改,直到应用程序将其标记为只读,并且可以由应用程序或.NET Framework垃圾收集器从计算机内存中删除。 SecureString实例的值在实例初始化或值被修改时自动encryption。 您的应用程序可以通过调用MakeReadOnly方法呈现实例不可变,并防止进一步修改。 自动encryption是巨大的回报? 为什么我不能说: SecureString password = new SecureString("password"); 代替 SecureString pass = new SecureString(); foreach (char c in "password".ToCharArray()) pass.AppendChar(c); 我缺less什么SecureString的方面?

我需要用bcrypt存储盐吗?

bCrypt的javadoc具有如何encryption密码的代码: String pw_hash = BCrypt.hashpw(plain_password, BCrypt.gensalt()); 要检查明文密码是否与之前已经散列过的密码匹配,请使用checkpw方法: if (BCrypt.checkpw(candidate_password, stored_hash)) System.out.println("It matches"); else System.out.println("It does not match"); 这些代码片断暗示着随机生成的盐被扔掉了。 这是这种情况,还是这只是一个误导性的代码片段?

安全的在线高分表为非networking游戏

我正在玩一个我正在编写的本地(非networking)单人游戏游戏,而且发生在我身上的是每天/每周/所有的在线高分榜 (想想Xbox Live Leaderboard)会让游戏更有趣的是,增加了一些(小)的社区和竞​​争。 但是,恐怕人们会看到这样一个特征,就是对黑客的邀请,这会让普通玩家感到不可思议的高分。 我想到了防止这种尝试的明显方法(例如公钥/私钥encryption),但是我已经想出了合理简单的方法,黑客可以绕过我的所有想法(从二进制文件中提取公钥,从而发送伪造的encryption分数,例如)。 你有没有实施在线高分榜或排行榜? 你有没有find一个合理的黑客的方法来实现呢? 如果是这样,你是怎么做到的? 你有什么黑客攻击的经验?

使用多个不同的密钥进行encryption?

有没有办法以encryption的方式存储数据,以便可以用几个不同的密钥进行解密? 也就是说,如果我已经用key1encryption了数据,但我希望能够用密钥2,3和4解密。 这可能吗?