如何让Perl crypt加密超过8个字符?

2023-12-09

Perl 时仅对前 8 个字符进行加密crypt使用函数。有没有办法让它使用更多字符?

举个例子:

$crypted_password = crypt ("PassWord", "SALT");

and

$crypted_password = crypt ("PassWord123", "SALT");

返回完全相同的结果。$crypted_pa​​ssword具有完全相同的值。

很想用crypt因为它是一些不可逆加密的快速而简单的解决方案,但这个限制并不使它对任何严重的事情有用。


引用自文档:

传统上,结果是一个 13 个字节的字符串:盐的前两个字节,后面是集合中的 11 个字节[./0-9A-Za-z],并且只有 PLAINTEXT 的前八个字节重要。但替代散列方案(如 MD5)、更高级别的安全方案(如 C2)以及非 Unix 平台上的实现可能会产生不同的字符串。

所以确切的返回值crypt与系统相关,但它通常使用仅查看密码的前 8 个字节的算法。这两点结合起来使其成为便携式密码加密的糟糕选择。如果您使用的系统具有更强的加密例程,并且不要尝试在不兼容的系统上检查这些密码,那就没问题。但听起来您正在使用带有旧的蹩脚 DES 例程的操作系统。

因此,更好的选择是使用 CPAN 之外的模块,以可预测、更安全的方式进行加密。

一些搜索给出了一些有前途的选项(我没有使用过,也不能推荐其中一个;我只是在metacpan上寻找有前途的关键字):

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

如何让Perl crypt加密超过8个字符? 的相关文章

  • 如何使用 Perl 在 Unix 中获取文件创建时间

    如何使用 perl 在 unix 中获取文件创建时间 我有这个命令显示文件的最后修改时间 perl MPOSIX le print strftime d b Y H M localtime lstat 9 for ARGV file txt
  • “foreach”循环中会发生什么样的本地化?

    来自 perldocperlsyn http perldoc perl org perlsyn html Foreach Loops关于 Foreach 循环的主题 如果变量之前是 用 my 声明 它使用 变量而不是全局变量 但它仍然局限于
  • 如何强制 Perl 按需重新编译使用“/o”编译的正则表达式?

    技术问题 给定一个正则表达式 my regEx qr whatever myVar oxi Notice o for compile once 强制重新编译的最有效方法是什么一经请求 例如 当我从程序逻辑中知道 myVar值改变 而不下降
  • Log4Perl 将多个程序的日志记录捆绑到一个日志中

    CPAN 上是否有任何 Logger 它允许我将多个程序的日志捆绑到一个文件中 并在两个程序同时运行并并行调用 log4Perl 时同步并行日志记录 背景是我使用一个自定义附加程序来写入电子邮件 我想将所有电子邮件捆绑在一个文件中作为备份
  • 缓存施瓦茨变换

    我正在学习 中级 Perl 它非常酷 我刚刚读完 施瓦茨变换 部分 在理解它之后 我开始想知道为什么变换不使用缓存 在具有多个重复值的列表中 转换会重新计算每个值的值 因此我想为什么不使用哈希来缓存结果 这是一些代码 a place to
  • 如何在 Perl 中运行匿名函数?

    sub print 1 sub print 1 我尝试了各种方法 都是错误的 sub 将为您提供指向该函数的指针 因此您必须通过引用调用 sub print Hello world n gt 另一种简单的方法 如所指出的布拉戈维斯特 布尤克
  • 在 Perl 中查找标量变量的数据类型

    我有一个接受用户输入的函数 输入可以是整数 浮点数或字符串 我有三个重载函数 应该根据输入数据的数据类型调用它们 例如 如果用户输入一个整数 比如100 则应该调用具有整数参数的函数 如果用户输入字符串 例如 100 则应调用具有字符串参数
  • 使用 ActivePerl 时为什么必须指定带有备份扩展的 -i 开关?

    除非我使用备份扩展指定它们 否则我无法就地编辑在 ActivePerl 下运行的 Perl 单行代码 C gt perl i ape splice F 2 0 q inserted text qq F n file1 txt Can t d
  • Perl 如何存储/处理非常大的数字?是否应该使用模块来代替 Perl 的默认处理方法?

    我需要添加 50 位数字 因此我将它们作为 字符串 处理 并编写了自己的函数将它们相加 后来 为了它的地狱 我尝试了这个 readFile shift ARGV sub readFile my file shift contains a b
  • 使用 unix ksh shell 脚本或 perl 脚本监视文件夹中的新文件并触发 perl 脚本

    我已经在谷歌搜索和溢出了一段时间 但找不到任何可用的东西 我需要一个脚本来监视公共文件夹并在创建新文件时触发 然后将文件移动到私有位置 我有一个 samba 共享文件夹 exam ple 在 UNIX 上映射到X 在窗户上 在某些操作中 t
  • 如何将 cpanminus 与本地 CPAN::Mini 一起使用?

    我已经创建了自己的 CPAN 本地副本minicpan http search cpan org rjbs CPAN Mini 1 111007 bin minicpan并设法重新配置 cpan 来使用它 太棒了 但是我将如何使用它cpan
  • SFTP文件同时上传和下载

    cronjob 每 3 小时运行一次 使用 SFTP 下载文件 调度程序是用Perl编写的 使用的模块是Net SFTP Foreign Can the Net SFTP Foreign下载仅使用 SFTP 部分上传的文件 如果是这样 我们
  • Perl 构建、单元测试、代码覆盖率:一个完整​​的工作示例

    我找到的关于 Perl 构建过程 单元测试和代码覆盖率的大多数 Stackoverflow 答案都只是将我指向 CPAN 那里的文档 指向 CPAN 模块绝对没有任何问题 因为完整的文档应该位于此处 不过 在很多情况下 我很难找到完整的工作
  • 如何从 Perl 中的 Subversion 预提交挂钩访问提交的文件?

    我需要执行以下操作 用 Perl 编写预提交钩子 Hook 应检查所有提交的文件是否存在某些文本 如果未找到该文本则失败 基本上 我需要一个读取正在提交的文件的 Perl 钩子示例 我真的在寻找一些代码量最少的优雅解决方案 笔记 钩子应该使
  • 匹配有限自然数列

    我怎样才能匹配有限自然数 http en wikipedia org wiki Natural number正则表达式系列 所以 要求是 字符串包含数字和空格 作为分隔符 第一个数字是1 每个数字 第一个数字除外 等于前一个数字 1 应该是
  • Perl LWP::简单 HTTPS 错误

    我正在尝试获取网站的内容并打印 该代码按照我希望的方式在常规 HTTP 网站上运行 但它不适用于 HTTPS 我已经查找了此问题的修复程序 但它们在我的程序中不起作用 这是我目前拥有的代码 usr bin perl use strict u
  • Perl Moose TypeDecorator 错误。我该如何调试?

    我最近遇到了一个问题 非常感谢您的见解 我在圣诞节前在 PerlMonks 上发布了类似的问题 并提供了一些从 MooseX Declare 切换的反馈 http www perlmonks org node id 877703 1 我现在
  • 如何检测已更改的网页?

    在我的应用程序中 我使用 LWP 定期获取网页 无论如何 是否要检查两次连续提取之间网页是否在某些方面发生了变化 除了明确进行比较之外 是否有在较低协议层生成的任何签名 例如 CRC 可以提取并与旧签名进行比较以查看可能的更改 有两种可能的
  • Perl Tk 模块有哪些缺点?

    与在 Perl 中创建 GUI 的其他解决方案相比 Tk 模块有哪些缺点 我最近浏览了 Perl 的各种 gui 模块 这是我的总结 免责声明 最终我发现现有模块都不能满足我的需求 所以我开始编写自己的 gui 工具包 Tk 工作起来很不错
  • 如何确保我的代码永远不会直接退出?

    eval require file subsequent code goes here If file包含一个exit语句 后面的代码就没有机会运行 如何解决以便后续代码始终有机会运行eval已经完成了 中止是不可能的exit call f

随机推荐

  • 列出所有应用程序 - 输出为文本文件

    我只是想知道如何使用最好的 applescript 来查找 Mac OS X 10 5 上安装的所有应用程序 并将其所有应用程序名称输出到文本文件中 Mac OS X 下安装的所有应用程序都注册在启动服务数据库 Launch Service
  • 如何使用 GitHub API?

    当它告诉我使用时 我不确定这意味着什么 GET repos owner repo commits sha 我如何使用该 API 调用来检索我正在查找的信息 GET repos owner repo commits sha GET是用于调用此
  • 绕特定点旋转(例如,绕0,0,0旋转)

    我一直在这个问题上进行了很多搜索 但我找不到真正合适的答案 我需要围绕给定点 例如 0 0 0 旋转圆柱体 但圆柱体的枢轴是默认给定的 我该如何改变它 I found this主题 这正是我想做的 但我不知道如何用 java 来做 为了更好
  • 列出实现接口的类的所有属性

    我有一个带有接口的类 TInterface interface IXMLNode function Get One Boolean function Get Two Boolean function Get Three Boolean pr
  • php - 我应该在调用 Location: header 之后调用 exit() 吗? [复制]

    这个问题在这里已经有答案了 调用重定向函数头后 是否应该调用 exit 谢谢 你绝对应该 单独设置标头不会终止脚本执行
  • 在 .NET C# 中存储加密密钥的最佳方法

    在我们的应用程序中 我们有很多敏感的配置设置 我们将它们存储在再次加密的 xml 文件中 该安全文件必须在运行时解密并读取配置值 但是出现了一个问题 密钥和初始化向量是硬编码在代码中的 因此任何人都可以使用 Reflector 读取它 在
  • 使用java从服务器(ServerSocket)读取客户端(客户端Socket)上的字节包

    我是新人 我是一名 Java 开发人员 新手 目前我正在从事 BSE 项目 我面临着从服务器 服务器套接字 读取客户端 客户端套接字 上的字节包的问题 如果你能帮助我 请帮助我 提前致谢 好吧 如果你想直接与数据包交互 那么你需要使用Dat
  • 如何从User字段LookupId获取用户

    我在 sharepoint 在线有一个列表 在这个列表中 我有一个人员字段 当我调用 API 端点来获取列表中的所有项目时 我获得了 person 字段的 LookupId 值 我尝试使用lookupid的值来获取用户 但它不起作用 因为该
  • 为什么 Hibernate 会忽略 package-info.java?

    我正在尝试在包级别上使用 Hibernate TypeDef 注释 正如它所描述的那样休眠文档 我在用着Hibernate 3 6 and Spring 3 0 7 代码编译并显示package info class位于类路径中 但 Hib
  • 我们究竟如何计算时间戳差异?

    我们将时间戳作为姿势 图片和点数据的双精度值 它们并不总是对齐 如何计算两个时间戳之间的时间距离 是的 我知道如何减去两个双精度数 但我完全不确定增量如何与时间相对应 我有一些有趣的时间戳数据可以阐明您的问题 但没有准确回答它 我一直在尝试
  • MySQL BIGINT(20) 与 Varchar(31) 性能对比

    我读过 像 23423423423423423637 这样的 bigint 作为 primare 唯一键比像 961637593864109 412954765521130 这样的 varchar 更好 但是how当有 100 万行时 我永
  • twig 继承和 symfony2 控制器变量

    我正在尝试使用 symfony2 twig 进行我的第一个项目 我使用定义的块创建了基本的树枝模板 它基本上看起来像这样 block content some content endblock block footer footer con
  • angularJS:用于溢出文本和性能的 dotdotdot

    我是 angularJS 的新手 也许写了一些不好的东西 但我怎样才能正确实现这个插件 https github com BeSite jQuery dotdotdot 在我的桌子上吗 现在用我的代码我的编辑表单和表格真的不太快 真的太慢
  • 使用 Google App Engine for Java 出现 ClassNotFoundException

    我和一个朋友正在使用 Java SDK 涉足 App Engine 我们已经 毫无问题地组合一个 Hello World 示例 然而 当 我们尝试添加代码以使用以下方式对 Web 服务进行简单调用 com google api client
  • 使用 libpqxx 库插入 NULL/空字符串

    在下面的代码片段中 名为 mac 的 std string 对象有时是一个空字符串 即 我希望准备好的语句自动将此变量视为 null 我想知道如何在下面的代码中实现这一点 在我的谷歌搜索尝试中 我碰巧发现有一种方法可以设置指示空值的标志 但
  • 使用包含 @ 的密码使用 PHP 连接到 FTP

    我有以下问题 我需要连接到 FTP 并读取一个 CSV 文件 主要问题是它的密码有 我如何连接特殊字符 我尝试了以下几种连接方式 文件打开 filename ftp user p s email protected file csv han
  • 更改子类模型表中的列顺序

    在 peewee 中有一个子类化模型的情况下 如何告诉 peewee 在表中创建列的顺序 在下面的例子中 顺序是 b c a 但我想要 a b c class BaseModel Model b CharField c CharField
  • 从 MS Access 执行 SQL Server 存储过程

    我使用 MS Access 2013 和 SQL Server 2012 我已将 SQL Server 数据库连接到 MS Access 我通过 SQL Server 身份验证连接到 SQL Server 我想执行一个存储过程 并将值输入到
  • 如何删除 jq 输出中的双引号以在 bash 中解析 json 文件?

    我正在使用 jq 解析 JSON 文件 如图所示here 但是 字符串值的结果包含预期的 双引号 如下所示 cat json txt jq name Google 如何将其传递到另一个命令中以删除 所以我得到 cat json txt jq
  • 如何让Perl crypt加密超过8个字符?

    Perl 时仅对前 8 个字符进行加密crypt使用函数 有没有办法让它使用更多字符 举个例子 crypted password crypt PassWord SALT and crypted password crypt PassWord