Tag: encryption

GUID有多么可靠的不可猜测?

前一段时间,我在一个Web应用程序,用户可以买票。 由于我们客户的stream程运行的方式,您购买的结果是一个带有票号的URL。 这些是在中东购买物业的门票,每张票可能价值约3,000,000美元。 显然,顺序整数会是一个坏主意。 我们使用GUID,因为它们基本上是不可猜测的,但是我的问题是:它们足够安全吗? 据我所知,.NET产生的GUID是完全伪随机的(除了一些不变的比特)。 但是,我不知道用什么algorithm来生成它们。 MSDN文档告诉我们Random是快速和不安全的, RNGCryptoServiceProvider是缓慢和安全的。 也就是说,假设某人可以投入足够的精力来预测Random的结果,而不是RNGCryptoServiceProvider 。 如果你看到足够长的GUID序列,是否有可能预测未来的期货? 如果是这样,你需要看多less? [在我们的具体情况下,后来进行了人身安全检查 – 您必须出示您用来购买机票的护照 – 所以如果有人猜对了别人的GUID,那也不算太坏,所以我们没有出汗当时。 将GUID用作数据库密钥的便利性使其成为一种有用的数据types。] 编辑: 所以答案是“不够”。 在下面使用0xA3的答案,并从他链接到的问题的链接,下面的代码将生成密码随机的GUID是有效的RFC 4122的第4.4节 : static Guid MakeCryptoGuid() { // Get 16 cryptographically random bytes RNGCryptoServiceProvider rng = new RNGCryptoServiceProvider(); byte[] data = new byte[16]; rng.GetBytes(data); // Mark it as a version 4 GUID data[7] = […]

我需要在Python中安全地存储用户名和密码,我有什么select?

我正在写一个小的Python脚本,它将使用用户名和密码组合周期性地从第三方服务中提取信息。 我不需要创造一个100%防弹的东西(甚至100%是否存在?),但是我想涉及到一个很好的安全措施,所以至less需要很长时间来打破它。 这个脚本没有GUI,并且会被cron定期运行,所以每次运行解密的时候input密码都不行,我必须把用户名和密码保存在encryption文件中,或者encryption在一个SQLite数据库,这将是可取的,因为我将使用SQLite无论如何,我可能需要在某个时候编辑密码。 另外,我可能会把整个程序封装在一个EXE中,因为它现在是专门用于Windows的。 我怎样才能安全地存储用户名和密码组合定期通过cron工作使用?

利用ASP.NET machineKeyencryption我自己的数据

我想在ASP.NET MVC应用程序中encryption一些数据,以防止用户篡改它。 我可以使用encryption类来做实际的encryption/解密,没有问题。 主要的问题是弄清楚在哪里存储encryption密钥并pipe理对其的更改。 由于ASP.NET已经为各种事情(ViewDataencryption等)维护了一个machineKey,我想知道是否有任何ASP.NET函数让我使用machineKeyencryption/解密自己的数据? 这样我就不必devise我自己的密钥pipe理系统了。

在JAVA中快速简单的stringencryption/解密

我需要快速和简单的方式来encryption/解密一大堆string数据。 我试过jasypt,但是在我的Android手机上崩溃了。 我有大约2000个logging (string)。 BasicTextEncryptor textEncryptor = new BasicTextEncryptor(); textEncryptor.setPassword("password"); String myEncryptedText = textEncryptor.encrypt(input); 有其他的方法吗? 我不需要非常高的安全性,它需要快速 !

怎样才能“解密”MD5哈希?

可能重复: MD5哈希值如何不可逆? 我正在读一个关于MD5的问题,这让我想起了让我感到厌烦的东西。 非常简单的问题,如果不是很好,我很抱歉。 我只是无法理解如何使用某种algorithm将某个东西转换成一个东西,并且没有办法使用相反的algorithm将其转换回来。 那么这怎么可能? 另外,由于多个string可以创build相同的MD5哈希,因为它比inputstringless,所以其他哈希系统会更好吗?

密码线程安全吗?

很简单, javax.crypto.Cipher (例如Cipher.getInstance("RSA") )的一个实例可以从多个线程中使用,还是我需要将它们中的多个保存在ThreadLocal (在我的情况下)?

公钥如何validation签名?

试图更好地解决公钥/私钥如何工作的问题。 我了解,发件人可以使用他/她的私钥向文档添加数字签名,以获得文档的哈希值,但我不明白的是如何使用公钥来validation签名。 我的理解是公钥encryption,私钥解密…谁能帮我理解?

为什么java.security.NoSuchProviderException没有这样的提供者:BC?

jar(bcprov-jdk16-145.jar)已被添加到项目中, Security.addProvider(new org.bouncycastle.jce.provider.BouncyCastleProvider())已被添加到类中, BouncyCastleProvider.PROVIDER_NAME确实返回“BC “但AesFileIo.writeFile()仍然抛出java.security.NoSuchProviderException No such provider: BC 。 有任何想法吗? import java.io.FileOutputStream; import java.io.InputStreamReader; import java.io.ObjectOutputStream; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; import org.bouncycastle.jce.provider.BouncyCastleProvider; public class AesFileIo { private static final String AES_ALGORITHM = "AES/CTR/NoPadding"; private static final String PROVIDER = BouncyCastleProvider.PROVIDER_NAME; private static final byte[] AES_KEY_128 = { // Hard coded for now […]

破解短的RSA密钥

鉴于以下RSA密钥,如何确定p和q的值是什么? Public Key: (10142789312725007, 5) Private Key: (10142789312725007, 8114231289041741)

什么encryptionalgorithm最适合encryptioncookie?

由于这个问题比较stream行,所以我认为给它一个更新是很有用的。 让我强调AviD给这个问题的正确答案 : 你不应该在你的cookie中存储任何需要encryption的数据。 相反,在cookie中存储大小适中的(128位/ 16字节)随机密钥,并将要保持安全的信息存储在服务器上(由cookie的密钥标识)。 我正在寻找关于encryptioncookies的“最好的”encryptionalgorithm的信息。 我有以下要求: 它一定是快的 encryption和解密的数据将(几乎)完成每一个请求 它将在小数据集上运行,通常是大约100个字符或更less的string 它必须是安全的,但它不像我们正在确保银行交易 我们需要能够解密这些信息,以便SHA1等等。 现在我读了Blowfish是快速和安全的,我已经读了AES是快速和安全的。 随着河豚具有较小的块大小。 我认为这两种algorithm都提供了足够的安全性? 所以速度会成为决定性的因素。 但是我真的不知道这些algorithm是否适合小string,以及是否有更好的algorithm来encryptioncookie。 所以我的问题是: 什么encryptionalgorithm最适合encryptioncookie数据? 更新 更准确地说,我们要encryption2个cookie:一个带有会话信息,另一个带有“记住我”的信息。 该平台是Linux上的VPS上的PHP作为apache模块。 更新2 我同意Cletus将任何信息存储在cookie中是不安全的。 但是,我们有要求实施“记住我”function。 接受的方法是设置一个cookie。 如果客户提供这个cookie,他/她可以(几乎)相同的权限访问系统,就像他/她提供有效的用户名密码组合一样。 所以我们至less要encryptioncookie中的所有数据,以便: a)恶意用户无法读取其内容, b)恶意用户不能制造自己的cookie或篡改它。 (在我们做任何事情之前,所有来自cookies的数据都经过了消毒和检查的有效性,但这是另一回事) 会话cookie只包含sessionId / timestamp。 它可能可以使用没有encryption,但我认为没有encryption的危害吗? (除了计算时间)。 所以鉴于我们必须在cookie中存储一些数据,encryption它的最好方法是什么? 更新3 对这个问题的回答使我重新考虑了所select的方法。 我确实可以做到这一点,而不需要encryption。 我不应该对数据进行encryption,而应该只发送没有意义的数据而无法猜测 。 不过,我也很茫然: 我认为encryption使我们能够将数据发送到BigBadWorld™,并且仍然(相当)地确信没有人能够读取或篡改数据。 难道那不是encryption的全部? 但是下面的反应会推动:不要相信encryption来实现安全。 我在想什么?