我存储密码,如果您是开发人员,那么以实际上最好的方式存储密码很容易。所以我想知道,2021年哪个最好?对我来说,调整我的代码以使其成为最好的代码很容易。
是的- 我研究并阅读了 Stack Overflow 和其他网站上的许多文章,所有这些文章都提供了最好的建议,并且我已经遵循了它,所以这个问题不会重复其他线程。
我目前所做的事情的高级概述:
这是我从读过的所有文章和主题中“学到”的智慧。
但是,就在最近,有人告诉我,实际上上述内容在 2021 年应该被认为是不安全的。虽然这个人有很好的资格,但我仍然对在对话中进行任何安全更改保持警惕,而且我不是安全专家,所以我之前想我做出改变然后我必须测试它。
而且,我想不出比 Stack Overflow 更好的地方了,我知道如果它值得的话,它会立即被切成碎片!我不是安全专家,但我问这个问题听起来很可信。
所以我带着一些惶恐的样子问,并跟随一些我相信的白痴,以下......是的,我问这个不是其他人。请找出我所提出的逻辑,然后我向您展示......哎呀!:
Users您的数据库表已被泄露,那么您存储的 SALT 也已被泄露(从我所读到的内容来看,这是普遍接受的)因此,使用bcrypt 或类似工具生成随机 SALT更加安全,因为工具已经发展到了这一点。盐实际上不再有任何区别,正如基本上所预期的那样。
问题 1: 以上情况是否属实? (我个人完全不知道)
显然,推荐的 2021 年解决方案如下:
我有一个类似于:但更长的字符串
my $a = "000000001111111111000000011111111111111111111111111111111";
Run Code Online (Sandbox Code Playgroud)
我正在计算“1”的数量:
my $total_1_available = $a =~ tr/1//;
Run Code Online (Sandbox Code Playgroud)
这工作得非常好,而且非常快。
但是,我也希望(以快速的方式)计算连续 1 的总数。连续“1”的最大计数。
在上面的示例中,它将返回以下计数:
11111111111111111111111111111111
Run Code Online (Sandbox Code Playgroud)
因为这是连续的最大值。
所以,我最终得到了 TOTAL_COUNT 和 TOTAL_CONSECUTIVE_COUNT。
我让它与一个 REGEXP 一起工作,它基本上替换了 1,然后计算被替换的内容并循环......实际上完全没问题并且有效......但它“感觉”不对。
理想情况下,我根本不想替换字符串,因为我正在寻找最大连续计数。
但是,我知道在 Perl 中这可能不是最快或最干净的方法。
你能教我更好的方法并增加我的学习吗?
按照要求,这是我当前的代码:
my $a= "0110011001101111";
my $total_1_available = $a =~ tr/1//;
print "Total number of 1's = $total_1_available\n";
my $max_c = 0;
while ( $a=~s/(1+)/ / ) {
$max_c = length($1) if length($1) > $max_c;
}
print "Consecutive count = $max_c\n";
Run Code Online (Sandbox Code Playgroud)
和最终代码:
use strict;
use warnings;
use …Run Code Online (Sandbox Code Playgroud)