【问题标题】:Unix crypt() function in smalltalk/pharosmalltalk/pharo 中的 Unix crypt() 函数
【发布时间】:2010-06-17 20:25:41
【问题描述】:

我想使用 crypt 函数对 UNIX 帐户的密码进行编码。我正在使用pharo 1.0。我尝试从 squeakmap 安装加密包,但它给了我一个错误,并且该包似乎已部分安装(没有类的类别)。

如何加密我的密码?如果需要,我愿意调用外部代码(并且 SqueakMap 中有一个包可以在 pharo 中发挥作用)。

谢谢。

【问题讨论】:

    标签: smalltalk pharo


    【解决方案1】:

    查看您的图像中是否有一个类别 System-Digital Signatures,以及一个 SecureHashAlgorithm 类。然后,您可以按如下方式对您的密码进行哈希处理:

    (SecureHashAlgorithm new hashMessage: 'my password') asString
    

    【讨论】:

    • 谢谢!事实上,我确实有这门课。它给了我:(SecureHashAlgorithm new hashMessage: 'my password')asString。 '930408691521612642154581053007002882786966762294' 但是,我需要 unix 帐户的散列密码,因此它们必须采用传统的加密格式之一:{crypt}0R9nvENe5JUlE {crypt}$1$8xbtm8Xw$G4HYuFl2fPRUgUBge26CN/ 有方法吗?再次感谢。
    • 以上类使用SHA哈希算法。这些天哪种算法使用crypt?另一种可能性是使用 OSProcess 类调用一些带有适当参数的外部程序。
    【解决方案2】:

    在 Pharo 中检查类别:System-Hashing。

    你有 MD5 和 SHA。

    类:SHA1、MD5NonPrimitive、MD5。

    这些类是从 squeaksource 的加密包中提取的,并使其在 Pharo 中工作。然后将 MD5 和 SHA 集成到内核中。

    干杯

    【讨论】:

      【解决方案3】:

      Cryptography 存储库中有 PasswordHashingFFI 包,它使用 FFI 访问 linux 上的 crypt(3) 库。

      这里是:

      http://www.squeaksource.com/Cryptography.html

      使用就像

      CryptLinuxFFI sha256:'1234'
      

      【讨论】:

        【解决方案4】:

        OSProcess 可用于调用任何外部程序。看看http://book.pharo-project.org/book/PharoTools/OSProcess/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多