Drupal 7 密码哈希

2023-12-19

我在这里有点进退两难。我有一个 drupal 7 数据库用户表,以及相应的密码。所有这些密码都已自然加密。我的假设是这些是 MD5 哈希值,但不完全是。

这里的挑战是,我们在一个同伴网站中使用同一组用户,该网站使用相似的凭据但使用不同的技术[请不要为此责怪我,我只是一个棋子]。

现在,如果我知道 Drupal 如何加密其密码,也许我可以解密它们并在我的后端逻辑中应用相同的内容?


请注意,这些密码是hashed http://en.wikipedia.org/wiki/Hash_function,未加密。散列和加密之间的根本区别在于,通过加密,您将能够恢复原始密码。当它们被散列时你将无法做到这一点(不是没有很多努力),这是设计使然的。

想想土豆煎饼:如果你做了土豆煎饼,你将无法恢复原来的土豆。这样做的目的是,如果黑客危害您的系统并获得对数据库的访问权限,他们将无法查看或恢复原始密码。

那么如何检查用户输入的密码是否正确呢?那么,当用户尝试登录并输入密码时,您可以对用户输入应用相同的函数,并查看输出是否与数据库中存储的内容相同。由于散列函数是确定性的 http://en.wikipedia.org/wiki/Deterministic_algorithm,您将始终使用相同的输入获得相同的输出。

让多个应用程序使用相同的哈希值的关键是让它们在尝试对用户进行身份验证时对密码使用相同的函数。 Drupal 可能也使用一种或多种salts http://en.wikipedia.org/wiki/Salt_%28cryptography%29-但这并不重要。只要您的应用程序使用相同的逻辑,哈希值将始终完全兼容。

假设 Drupal 使用类似的东西作为其身份验证系统(非常简化的伪代码):

/*
    input: user-entered $username and $password
    output: true if authorized, false otherwise
*/
function auth($username, $password) 
{
    $salt = 'some random salt';

    // input is sanitized somewhere, somehow
    $hash_from_db = db_result('SELECT hash FROM users WHERE username = "$username"');
    $hashed_input = sha1($password . $salt);

    if ($hash_from_db != $hashed_input)
        return false;
    else
        return true; 
}

如果您的其他应用程序使用完全相同的方法来验证其用户,那么它将正常工作。请注意,Drupal 的身份验证方案可能会复杂得多,但不要因此而困扰您。它只是做 Drupal 所做的同样的事情。


对于 Drupal,您可以从这里开始:user_hash_password() http://api.drupal.org/api/drupal/includes!password.inc/function/user_hash_password/7.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Drupal 7 密码哈希 的相关文章

  • Android 中的字符串加密

    我正在使用代码进行加密和加密 它没有给出字符串结果 字节数组未转换为字符串 我几乎尝试了所有方法将字节数组转换为字符 但没有给出结果 public class EncryptionTest extends Activity EditText
  • Drupal Views 如何过滤与日期范围重叠的项目

    在 Drupal 中 我使用 CCK 将日期时间字段添加到我的自定义数据类型中 它插入开始日期和结束日期字段 这就是我想要的 现在 我希望视图过滤并仅显示日期范围 开始日期和结束日期 与今天日期重叠的项目 关于如何在视图上设置它有什么想法吗
  • 有人知道 Drupal 7 的分面搜索解决方案吗?

    分面搜索模块不会被移动到 Drupal 7 我有什么选择 The 搜索API模块 http drupal org project search api是 Drupal 7 的新增功能 允许您从各种后端中进行选择 包括Solr http dr
  • 用 C++ 解密文件,该文件使用 openssl -aes-128-cbc 加密

    我正在尝试用 C 解密文件 该文件使用以下命令加密 openssl enc nosalt aes 128 cbc pass pass test in test txt out test enc txt p 控制台显示key 098F6BCD
  • SSL如何使用对称和非对称加密?如何管理一台主机上多个站点的认证? [复制]

    这个问题在这里已经有答案了 首先 引用微软TechNet的一些内容管理 Microsoft 证书服务和 SSL http technet microsoft com en us library bb727098 aspx 回顾一下 安全 S
  • Java AES 256 加密

    我有下面的 java 代码来加密使用 64 个字符密钥的字符串 我的问题是这会是 AES 256 加密吗 String keyString C0BAE23DF8B51807B3E17D21925FADF273A70181E1D81B8EDE
  • IOS 上图像的加密/解密

    我们正在使用加密 解密和 UIIMAGE 如果我们加密和解密 UIIMAge 而不保存到 iphone 画廊中 它工作正常 但如果我们加密 保存到画廊中 将 加密的图像 加载到应用程序中 然后解密它效果不好 我们使用这个函数来加密 解密 保
  • 如何解决“无法加载PEM客户端证书,OpenSSL错误:02001003:系统库:fopen:没有这样的进程”错误?

    如果这个问题很愚蠢 请原谅 但我是这个领域的新手 我需要通过 SSL 从 Drupal 7 站点连接到服务 我有一个扩展名为 p12 的文件及其密码 另外 我使用 PHP 7 1 1 和 Windows 7 64x 我使用以下命令将 p12
  • Keystore getEntry 在 Android 9 上返回 NULL

    c我已对存储在 Android 密钥库中的登录密码进行了加密和解密 在 Android 9 上 我观察到应用程序在尝试解密密码时崩溃 我无法重现它 但拥有 Pixel 3 的用户是崩溃的设备之一 下面是我如何从密钥库解密密码 private
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • asp.net 视图状态加密

    我有几个关于何时以及如何在 ASP NET 3 5 中加密视图状态的问题 例如 如果我的 web config 中有一个机器密钥条目 例如 解密Key 自动生成 IsolateApps 验证 AES 解密 自动 gt 此时视图状态是否已加密
  • 在 ASP.NET 中加密 cookie

    我想在 ASP NET 中加密 cookie 我已关注本文的方法 http www codeproject com KB web security HttpSecureCookie aspx 但它有一个缺点 那就是在内部方法上使用反射 这导
  • 在 Postgres 中存储加密数据 [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我需要在 Postgres 中以加密形式存储某些数据 显然 我需要对其进行加密 存储 并且能够读取和解密 做这个的最好方式是什么 The bes
  • iPhone 和加密库

    我想我必须在我的 iPhone 应用程序中使用加密库 我想问你有关苹果公司实施的加密货币出口政策的影响 我需要做一些额外的事情吗 例如填写表格等 1 如果我使用 MD5 进行哈希处理 2 如果我使用对称加密 Thanks EDIT 2009
  • 检查字符串是否是哈希值

    我正在使用 SHA 512 来散列我的密码 当然还有盐 我认为我想要的不可能 但无论如何我们还是要问一下 有没有办法检查字符串是否已经是 SHA 512 或其他算法 哈希值 当用户登录时 我想检查他的密码 如果它仍然是纯文本 则应将其转换为
  • 握手失败(40) 和 TLS_EMPTY_RENEGOTIATION_INFO_SCSV

    安装在 jBOSS 上的客户端正在尝试访问在 DataPower 上配置的安全网站xi50v6 0 0 2器具 SSL 握手时连接失败 我在 DataPower 上进行了数据包捕获 发现 SSL 握手失败 并显示以下错误 Descripti
  • Android 中的 AES 解密速度慢

    我尝试使用 AES 128 位密钥解密 4 2 MB dcf 文件 但解密需要 33 秒 在函数 cipher doFinal data 上 这正常吗 这是一个代码片段 long start System currentTimeMillis
  • 将 PHP 中的 openssl AES 转换为 Python AES

    我有一个 php 文件 如下所示 encryption encoded key c7e1wJFz PBwQix80D1MbIwwOmOceZOzFGoidzDkF5g function my encrypt data key encrypt
  • 启用 TLSv1.2 和 TLS_RSA_WITH_AES_256_CBC_SHA256 密码套件

    Server TLS Version v1 2 Cipher Suite TLS RSA WITH AES 256 CBC SHA256 Client JRE 1 7 当我尝试直接通过 SSL 从客户端连接到服务器时 收到以下错误 Caus
  • javascript 中的 RSA 不再支持 ASCII/字节数组

    我正在使用 rsa js v1 0http www cs students stanford edu tjw jsbn http www cs students stanford edu tjw jsbn 在浏览器中加密 ASCII 字符串

随机推荐

  • 从R中的循环返回单独的txt文件

    我想返回循环中每次迭代的结果 并将其写入单独的文本文件中 但由于某种原因 它似乎不起作用 我的代码是 for i in length traject player lt subset traject i subset dt 1 test l
  • 哪种排序方法最适合并行处理?

    我现在正在查看我以前的学校作业 想找到问题的答案 哪种排序方法最适合并行处理 冒泡排序 快速排序 归并排序 选择排序 我想快速排序 或合并排序 就是答案 我对么 与合并排序一样 快速排序由于其分而治之的性质也可以轻松并行化 单独的就地分区操
  • 通过 List 发布多个文件

    我只想通过模型将多个文件发布到控制器 class myModel public List
  • Android MediaPlayer 未从prepareAsync 返回

    我在使用特定 URI 启动 MediaPlayer 的 Logcat 中得到以下信息 通常 每个 Uri 无论好坏 都会播放或返回错误 除了这个特定的 Uri I MPS PrepAsync started V MediaPlayer me
  • 如何在 F# 中编写函子在 OCaml 中执行的操作的代码?

    我有很多用 OCaml 编写的程序 其中一些使用函子 现在 我正在考虑用 F 编写和重写部分代码 以受益于 OCaml 不具备的一些优点 我担心的一件事是在 F 中编写函子在 OCaml 中执行的操作的代码 例如 我们如何模仿这个例子来自
  • 在 PHP 开关中使用 strstr

    我只是想不出代码 我有太多 if 语句 我想将其更改为 switch 语句 但我找不到逻辑 目前我有 if strstr var texttosearch echo string contains texttosearch if strst
  • org.h2.jdbc.JdbcSQLException:未找到列“ID”

    我的代码中有以下 DDL CREATE TABLE IF NOT EXISTS SOMETABLE id BIGINT AUTO INCREMENT NOT NULL FOREIGN KEY id REFERENCES OTHERTABLE
  • Javascript (MVC) 从数据库加载图像(字节数组)

    Stack 上有很多这个问题的答案 但没有一个对我有用 我需要通过对控制器的 ajax 调用检索字节数组 在 javascript 中设置图像标签的 src 属性 我必须在客户端执行此操作 因为我正在动态构建一些 html 在下面的简单示例
  • 如何在 ASP.Net 中转储响应标头

    我正在使用 VSTS 2008 C Net 3 5 来开发 ASP Net 我想转储特定 aspx 文件返回给客户端的所有响应标头 有什么想法可以轻松做到这一点吗 我知道如何使用 Response Headers 集合 但我的困惑是在哪里枚
  • 如何告诉屏幕阅读器链接已禁用?

    我有一个页面n部分 这些部分是隐藏的 只能通过单击各自的链接来显示 页面加载时 只有第一个链接处于活动状态 其余 n 1 个链接处于活动状态href 基于某种逻辑 其他链接被单独激活 如何让屏幕阅读器理解该链接是disabled or 停用
  • Handsontable:隐藏一些列而不更改数据数组/对象

    我有一个数据要在网格中显示 我正在使用 Handsontable 来显示数据 每个第三列都计算为前两列的差值 例如 第三列渲染为第一列和第二列的总和 这是由自定义渲染器通过取总和来完成的i 1 and i 2列 这是我的 差异 列的自定义渲
  • React - Axios 调用发出太多请求

    我通过制作游戏项目来学习 React 和 Redux 我想通过API获取数据 属性 但它导致太多请求 我猜它可以与直接在功能性反应组件中放置 axios 调用有关 但我不知道如何修复它 function Attributes attribu
  • 如何在 Android 中下载并保存图像

    如何在 Android 中从给定的 URL 下载并保存图像 编辑截至 2015 年 12 月 30 日 图像下载终极指南 最后一次重大更新 2016 年 3 月 31 日 TL DR 又名 别再说了 给我代码吧 跳到这篇文章的底部 复制Ba
  • 如何将前导零的数字转换为字符串并保留原​​始数字

    我正在尝试将以 0 开头的数字转换为字符串 例如 变量 x 01127160037 but when I convert it to string it become 157081631 我期望得到字符串中 01127160037 的实际结
  • 页面刷新后QWebEngineView问题

    当我切换用户代理时问题就解决了 但不知怎的 当我刷新页面或从whatsapp注销时它又回来了 我已经实现了一个用户代理打印机来检查用户代理是否重置回来 但事实并非如此 如何我能解决这个问题吗 code import sys from PyS
  • Java - 检查 JTextField 是否为空

    所以我知道这是一个很受欢迎的问题并且已经找到了解决方案 但当我尝试这样做时 它无法正常工作 我的 JTextField 为空并且按钮未启用 当我在文本字段中写入内容时 按钮不会启用 所以我的程序应该每秒检查该字段是否为空 一旦有人在文本字段
  • ORA-06550 和 PLS-00103

    HI 我正在使用 UNIX 操作系统并在 oracle 上工作 我收到以下错误消息 E ORA 06550 line 1 column 8 PLS 00103 Encountered the symbol when expecting on
  • 将多个文件夹压缩为 1 个 zip - Google 云端硬盘脚本

    我想为 Google Drive 制作一个脚本 我想每周备份我的文件夹并将它们存储在 Google 云端硬盘中的另一个文件夹中 关于每周触发 我已经可以了 但是我遇到了问题 因为我找不到压缩整个文件夹的方法 我要压缩的文件夹有多个子文件夹和
  • 为什么链接器会在 .rela.plt 中生成看似无用的重定位?

    首先 我正在玩的玩具程序 prog c int func1 int main int argc char const argv func1 return 0 lib c int func1 return 0 构建 gcc O3 g shar
  • Drupal 7 密码哈希

    我在这里有点进退两难 我有一个 drupal 7 数据库用户表 以及相应的密码 所有这些密码都已自然加密 我的假设是这些是 MD5 哈希值 但不完全是 这里的挑战是 我们在一个同伴网站中使用同一组用户 该网站使用相似的凭据但使用不同的技术