问题标签 [cryptanalysis]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cryptography - 如何从给定的 GUID 预测下一个 GUID?
我已经向我们的客户发送了 10000 封邮件,每封邮件都有一个格式的链接
不幸的是,guid
我发送的是随机指南(由 生成的测试数据Guid.NewGuid()
),所以客户都收到了无效链接......
根据我从网络服务器收到的 404,我发送了一些指南。我读过 Windows 中的 guid 生成器很弱,因此您可以从已有的 guid 预测下一个 guid。有谁知道怎么做?如果我能做到这一点,我可以使我发送的指南有效,这样链接就会再次起作用。
cryptography - 多重冲突与对哈希函数的第一次或第二次原像攻击有什么区别?
哈希函数中的多重冲突与第一或第二原像之间有什么区别。
第一次原像攻击:给定一个哈希 h,找到一条消息 m 使得
哈希(m)= h。
第二原像攻击:给定一个固定的消息 m1,找到一个不同的消息 m2 使得
哈希(m2)=哈希(m1)。
多重碰撞攻击:生成一系列消息 m1, m2, ... mN,这样
哈希(m1) = 哈希(m2) = ... = 哈希(mN)。
维基百科告诉我们,原像攻击与碰撞攻击的不同之处在于,有一个固定的哈希或消息被攻击。
我对发表以下声明的论文感到困惑:
该技术不仅可以有效地搜索碰撞,而且还适用于探索 MD4 的第二原像。关于第二原像攻击,他们表明随机消息是概率为 2^–122 的弱消息,只需一次 MD4 计算即可找到与弱消息对应的第二原像。
如果我理解作者似乎在说什么,他们开发了一种多重冲突攻击,其中包含足够大的消息集,给定一条随机消息,它与他们的多重冲突中的一个重叠的可能性很大,尽管非常小。碰撞。
我在许多论文中看到了类似的论点。我的问题什么时候攻击不再是多重碰撞攻击并成为第二次原像攻击..
如果多重冲突与 2^300 条其他消息发生冲突,这是否算作第二个原像,因为多重冲突可用于计算与之冲突的其中一条消息的“原像”?分界线在哪里,2^60、2^100、2^1000?
如果您可以生成所有以 23 开头的哈希摘要的原像,会怎样?当然它不符合原像的严格定义,但它也非常肯定是密码散列函数中的一个严重缺陷。
如果某人有一个大的多重冲突,那么他们总是可以恢复任何哈希与多重冲突冲突的消息的图像。例如,
散列(m1) = 散列(m2) = 散列(m3) = h
有人请求 h 的原像,他们以 m2 响应。这什么时候不再愚蠢而成为真正的攻击?
经验法则?知道评估哈希函数攻击的任何好的资源吗?
相关链接:
encryption - How do brute force decryption attacks know when they've found the right solution?
How do brute-force attacks on encrypted data know when they've found the right key to decrypt the data? Is there a way to know that data's been decrypted, other than having a human looking at it? What if it's not human-friendly data?
cryptography - 识别成功解密不难吗?
当我听说破解加密算法的方法时,我注意到人们经常关注如何快速解密以及如何减少搜索空间。但是,我总是想知道您如何识别成功的解密,以及为什么这不会形成瓶颈。还是经常假设加密/解密对是已知的?
encryption - 加密数据重复——危险信号?
我有一些 base-64 编码的加密数据,并注意到大量重复。在(大约)200 个字符长的字符串中,某个 base-64 字符在几个单独的重复运行中最多重复 7 次。
这是加密存在问题的危险信号吗?根据我的理解,即使明文是完全一致的,加密数据也不应该出现明显的重复(即即使我加密了 2 GB 的只有字母 A 的内容,在加密版本中也不应该出现明显的重复)。
php - 尝试解密 PHP PseudoCrypt 类
我正在尝试创建一种方法来反转在以下位置列出的 PseudoCrypt 脚本:http ://blog.kevburnsjr.com/php-unique-hash 。在此代码中,它具有以下等式:
我已经能够获取除 $num 之外的所有变量。例如,采用以下数字:
等式将如下所示:
答案应该是 1。但是我还没有确定使方程 = $num 的方式。我想使用它在 URL 中创建的哈希,然后解密哈希以在我的数据库中执行查询。
编辑:如果有更好的方法来创建一个独一无二的哈希值,并且复制空间很小,我会对此持开放态度。
编辑:不知何故,我为 $dec 输入了错误的值。编辑:使用功能代码更新的博客帖子。
hash - 沿着加密的 AES 密钥存储密码哈希的安全隐患
我正在使用 PKCS#5 标准使用随机且唯一的盐和输入的用户密码生成密钥。将此密钥视为“加密”密钥。
“加密”密钥用于加密随机 AES 密钥。每个用户都有一个与其配置文件关联的 AES 密钥。
因此,用户的个人资料将包含以下信息:
--> 用于身份验证的密码哈希。
--> PKCS#5 算法中使用的盐。(从 PKCS#5 V2.0 文档中,我们知道此信息不需要保护)。
--> 随机生成的加密 AES 密钥,并使用由 PKCS#5 算法生成的“加密”密钥以及盐和用户密码进行加密
我在问自己同时拥有密码的哈希、盐和加密的 AES 密钥是否危险。我有 99.9% 的把握这不是问题,但它能否促进拥有所有这些细节的攻击者的工作?
python - 根据字符串的英语程度对字符串进行评分
我不确定如何准确地表达这个问题,所以这里有一个例子:
string1 = "THEQUICKBROWNFOX" string2 = "KLJHQKJBKJBHJBJLSDFD"
我想要一个函数,它的 string1 得分高于 string2 和一百万个其他乱码字符串。请注意缺少空格,因此这是一个逐字符的函数,而不是逐字的函数。
在 90 年代,我在 Delphi 中编写了一个三元组评分函数,并用 Huck Finn 的三元组填充它,我正在考虑将代码移植到 C 或 Python 或将其合并到一个独立的工具中,但必须有更有效的方法目前为止。我会这样做数百万次,所以速度很好。我尝试了 Reverend.Thomas Beyse() python 库并使用一些全大写字符串对其进行了训练,但它似乎需要单词之间的空格,因此返回 [] 的分数。我找到了一些马尔可夫链库,但它们似乎也需要单词之间的空格。虽然根据我对他们的理解,我不明白为什么会这样......
无论如何,我做了很多密码分析,所以将来使用空格和标点符号的评分函数会很有帮助,但现在我只需要 ALLCAPITALLETTERS。
谢谢您的帮助!
cryptography - 使用同一文件的已解密版本从加密文件中获取 AES 密钥
这甚至可能吗?加密文件在 CBC 模式下使用 AES-128。我已经有了它的解密版本,但是我不知道用来加密它的密钥,我需要它(我宁愿不说原因)。
我知道这两个文件是相同的,因为填充被禁用(它们具有相同的大小)。我也知道加密过程中使用的初始化向量,如果有帮助的话。