问题标签 [cryptographic-hash-function]
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.
c# - MD5加密中的特殊字符
我在 C# 和 SQL Server 中遇到了 MD5 加密问题,它只发生在具有特殊字符的行上。
这是c#中的代码:
使用 RowHash 方法,我将 Row 中的所有字段连接起来,除非将存储结果的字段哈希,然后我将其发送到方法 PasswordMD5,该方法创建我们保存在数据库中的加密哈希。
然后我用这段代码在 SQL Server 中做同样的事情:
然后我将它与我在 C# 中创建的 Hash 进行比较,以检查我在数据库中拥有的数据的完整性。这适用于所有没有特殊字符的行,但对于包含任何特殊字符(如 é 或 ö)的所有行都失败。
这是我前段时间遇到的一个问题,但任务被其他优先事项暂停,我不记得我已经尝试过哪些解决方案,我记得我尝试了一些解决方案来改变 C# 中字符串的编码,但没有一个奏效。
我做错了什么?
提前致谢。
php - CRYPT() 和 MD5() 有什么区别?
当我们使用任何变量的 CRYPT() 方法时。
结果
当我们使用相同变量的 MD5() 方法时。
$test = 'password';
echo MD5($test);
结果
5f4dcc3b5aa765d61d8327deb882cf99
现在,这两个答案有什么区别?
cryptography - 使用 md5 或 sha1 的密码散列仍然有效吗?
刚才我在做一个金融项目。在这里,团队正在考虑使用MD5
for password hashing
。但是,今天很容易复制一个SHA1
或MD5
密码来解密,包括如果它们是复杂的密码,比如:
My$uper$ecur3PAS$word+448
,你可以使用在线页面来解密它,就可以了。中小型开发人员(包括我)使用这些hashing methods
,但我认为不足以提供数据库的安全性。(不包括firewalls
, network security
,iptables
等)。
有人可以告诉我解决此漏洞的更好方法是什么吗?
python - Python:从数组生成私钥?
我是 python 和密码学的新手。我想从变量生成 PrivateKey。在寻找了这么多选项之后,我才知道我只能从Random
函数生成密钥对。
这是我的变量
所以我的问题是,
- 是否可以从序列/数据生成 PrivateKey
- 如果是这样,任何关于我该如何继续的建议
- 最后但并非最不重要的一点是,我应该使用哪种算法(RSA/ECC)
arrays - 如何在swift 3中将字节数组转换为字符串
我将字节数组的 C# 代码快速引用为字符串转换
我尝试使用以下几个代码将字节数组转换为字符串:
(一个)
结果:得到零值
(乙)
结果:23113382462341441481111741361561200186215113(我认为这不是理想的方式)
我从最近两天开始搜索并尝试了其他多种方法,但我错过了一些东西或做一些错误。请帮我解决这个问题。
react-native - 解密,md5在本机反应中加密数据
我想知道,我如何解密,md5 加密反应原生的数据。愿你帮助我。我无法在网络上找到任何教程。我添加了用于加密的 md5 库,但我无法解密该 cod。如果你也知道加密,请解释一下。我如何在反应原生鳕鱼中使用。谢谢
c# - 使 PHP md5 哈希匹配 C# 哈希
我在 C# 上有一个代码,我试图重写为 PHP,当涉及到加密时,我的 PHP 结果与 C# 代码生成的数据库中的哈希不匹配
这是一个 C# ConvertToBase64
如代码所示 salt is 6ec95f40-9fe3-4014-87d6-40c3b1fff77e
pass is Danil18
。DB值maIdHxLbyqD2WkntiLGh2w==
,PHP输出OTlhMjFkMWYxMmRiY2FhMGY2NWE0OWVkODhiMWExZGI=
这段代码是否正确,我在 C# 类中缺少一些文本转换?
更新: 在深入研究 C# base64 之后,这段代码仍然没有输出相同的结果
c# - 在运行时重新检查可执行哈希修改
例如,如果我用 C# 编写了一个 hello world 程序,有没有办法在运行时检查正在运行的二进制文件是否有修改?
我们可以读取.exe
文件(例如在 Linux 中的/proc/PID/exe
文件),对其进行哈希处理,并在运行时比较哈希值,这可能工作正常,但我们可以从内存中读取(self)运行的可执行文件作为字节并对其进行哈希处理以检查它是否在运行时被其他东西修改?
bloom-filter - 如何从散列函数生成散列值以及如何从这些散列值中获取整数值?
在此处输入图像描述 ,字符串为“SEAN”,然后将其转换为二元组,每个二元组产生不同的哈希值,但我不明白这里使用哪个哈希函数以及它如何从哈希值生成 int 值以映射到Bloom筛选。
python - 使用 hashlib 的更新方法时如何禁用连接?
我编写了一种使用 hashlib 散列密码的方法。我允许用户通过 POST 方法发送密码,该方法由 Flask 接收,然后对密码进行哈希处理,以便可以根据存储的 var 检查哈希值是否相同。
当第一次发送正确或不正确的密码时,它都很好用。但是,如果用户在第一次 POST 时发送了错误的密码,然后使用正确的密码再次尝试,则会失败。(如果第一次尝试成功并且用户继续尝试,也可以将其视为失败,但我现在不在乎。)
hash.update(arg) 使用字符串 arg 更新哈希对象。重复调用等效于连接所有参数的单个调用: m.update(a); m.update(b) 等价于 m.update(a+b)。
我想知道如何在重复调用时禁用串联。这是否是一个hacky解决方法并不重要。
这是我的代码,以防它有用:
补充说明:
- “r.set”行(在最后一行之上)只是因为它后来对 Redis 做了一些事情。
- 我检查了 passwordBytes 在提供相同密码时总是返回相同的编码(它是确定性的)
- 如果在第一次尝试或另一次尝试中提供相同的密码,我还检查了 h.hexdigest() 是否返回不同的内容。所以考虑到这两点,我们可以确定问题出在 h.update() 上,可能是因为 concatenation 特性。