制作密码生成器:Yandex的实践 [Step-By-Step指南]

假设您要为每个使用的网站使用唯一的密码。但是您不想记住所有这些。为此,您可以使用密码管理器,但是谁知道该管理员如何使用您的密码?它总是比较安全有自己的东西。这就是我的密码生成器的来源。以下是规格:

  1. 它需要一个网站的地址
  2. 还有你的一些秘密话
  3. 然后将这些东西混在一起并通过可预测的加密货币算法将其全部运行
  4. 结果是用作密码的字符和数字的唯一组合
  5. 对于每个地址,密码都是唯一的,但不会是随机的。

每次您为特定地址生成密码时,都会获得相同的密码。这样,如果您忘记了密码,则可以重新生成它,它将适合您。一句话警告。此算法不是加密货币安全的。如果有人从步骤2中知道您的秘密单词,他们将能够重新创建您的密码。因此,在关键任务和敏感区域中使用这些密码是不明智的。但是仍然值得尝试开发。MD5哈希处理算法的核心是MD5哈希处理引擎(在第3步中可以看到)。散列是一种将文本转换为32个字符的字符串(一种数字指纹)的算法。例如,如果您对google.com进行编码,则总会得到哈希1d5920f4b44b27a802bd77c4f0536f5a。并且,如果您的字符串是https://google.com,则您的哈希始终为99999ebcfdb78df077ad2727fd00969f。重要的是要知道以下内容:哈希(或数字指纹)无法进行反向工程以显示原始字符串(至少不容易且不直接),使用MD5编码相同的字符串将始终创建相同的哈希。您拥有可能的源文本和要解密的目标哈希的集合,您可以仅从源文本进行哈希处理并将其与目标哈希进行比较。这是破解密码泄露数据库的常用方法。该算法已广为人知且经过深入研究,没有任何加密货币技术是坚不可摧的。 MD5哈希是不是100%的安全。生活中真的没有什么。使MD5更安全的常用方法之一是添加SALT。 Salt是添加到您的加密货币字符串中的一个秘密单词或字符,没人知道。使用SALT,反向匹配的预哈希密码变得更加困难。这是一个示例。假设您要对字符串“ mail.google.com”进行哈希处理。该字符串将始终为您提供哈希值be5cab0695415d9363d18ad1345c73eb。黑客在不知道该密码来自何处以及其含义的情况下拦截了该密码。但他想找出答案。他制作了一个可能的字符串表,对其进行哈希处理,并将所得哈希与您的哈希进行匹配:但是,如果您的原始字符串是“ mail.google.comJacko”,那么“ Jacko”在哪里会怎样?在这种情况下,您的哈希将为397ea03e8e23b5b0127dffc6db629eab,除非黑客以某种方式猜出了您的食SALT,否则他将无法对该哈希进行反向匹配。因此,一切都取决于黑客知道您的食SALT是什么以及您将其放置在什么地方。该界面我将从一些基本界面开始。在记事本中创建一个文本文档,将其粘贴并另存为HTML。如果您对所发生的事情一无所知,请阅读其中的评测:


密码产生器





密码产生器





您的密码是:



如果将此文本另存为.html文件并在Chrome或其他浏览器中将其打开,则会得到类似的内容。它看起来不错,但它暂时还不能只是工作: 接下来,我将编写一个脚本,该脚本将在浏览器中运行,并确保发生所有加密货币魔术。请执行以下步骤:第0步:内部整理我想保持我们的代码整洁,因此我将首先声明一些变量并设置一个稍后将由按钮触发的函数。该代码尚无法执行任何操作,但是我需要它来正常运行实际有用的代码。所有这些都在 上一个文档末尾的代码块://设置变量
var站点,SALT;
var文字,密码;
//该函数运行所有有用的代码
函数generate(){
//这是有用的代码
}第1步。从我正在用Java语言编写的网站上获取地址,该地址在浏览器中运行,并且可以直接访问您网页中发生的一切。在页面上,我有一些输入字段。从这些字段中读取内容只需一行:site = document.getElementById('site_url')。value;注意site_url是什么?这是输入字段的ID。该命令实际上是这样的:'在页面上找到ID为'site_url'的任何对象,查看其值,然后将其中的任何内容传递到我先前声明的名为'site'的变量中。注释“这里有用的代码”。步骤2。采用秘密字以同样的方式,我读了秘密字:salt = document.getElementById('keyword')。value;该行在前一行的下面。第3步:将它们混在一起现在,我需要结合“站点”和“SALT”中的内容。我也可以添加一些额外的东西以增加咸味。在Javascript中,只需添加以下内容即可连接文本的两个位:text = site + salt +'Practicum Rules';我们的'text'变量现在将具有在页面上两个输入块中写入的内容以及密码的秘密的组合“实习规则”一词。由于该算法被硬编码到页面中,因此并不能真正保护我们的算法,因此,只要查看此生成器的源代码的人都可以读取该算法。但这仍然很有趣。第4步:加密货币它们我之前加载了MD5脚本,所以现在我所要做的就是使用它:password = md5(text);该行显示:调用名为md5的函数,并为它提供“ text”变量中的所有内容。它吐出的内容将其放入“ password”变量中。步骤5.输出密码使用JavaScript,输出到页面很容易:document.getElementById('pass_text')。innerHTML = password;这意味着:在文档中,找到ID为'pass_text'的元素,然后将其放入内部HTML中在变量“密码”中。而且我知道我只是将编码后的密码放在此处,所以我会在页面上看到编码后的结果。 RunningNow,我需要确保所有有用的代码都在名为“ generate”的函数内,并且已将此函数映射到页面上的按钮。其中我有,看看加粗部分: 这是最终代码:


密码产生器





密码产生器





您的密码是:



保存,加载,键入您的密码和站点URL,然后按Generate。 Bam,您为自己设置了密码生成器。恭喜你接下来可以做什么

  1. 您可以通过多次运行md5算法来提高加密货币效果。
  2. 您可以使用大写和小写字母,并在生成的密码中添加其他字符
  3. 您可以将密码截断为9至12个字符,以使其更易于管理
  4. 您可以将此脚本转换为可执行程序,然后将其携带在闪存驱动器上

我会再做一次。请随时关注更新。
          
          
          
          

          

          
          
          
        

资讯来源:由0x资讯编译自HACKERNOON。版权归作者所有,原文链接:https://hackernoon.com/making-your-own-password-generator-a-step-by-step-guide-8rs42eb。未经许可,不得转载
提示:投资有风险,入市需谨慎,本资讯不作为投资理财建议。请理性投资,切实提高风险防范意识;如有发现的违法犯罪线索,可积极向有关部门举报反映。
你可能还喜欢