Ruby#string在c#和php中加密

Rye*_*yex 3 php c# ruby string crypt

我有一个ruby客户端程序,用字符串#crypt加密密码,如此

  encrypted = password.crypt(SALT)
  # removing first two characters which actually are the salt for safety
  return encrypted[2, encrypted.size - 2]
Run Code Online (Sandbox Code Playgroud)

然后将其发送到服务器以与其存储的预加密字符串进行比较.我怎么能够从ac#app和php网页发送相同的加密密码,并且仍然能够使用来自任何其他客户端的相同密码登录.

加密的C#和php中的等效代码是什么?

dtb*_*dtb 6

C

  • 隐窝(3)

    crypt()是密码加密函数.它基于数据加密标准算法,其中包含(以及其他内容)的变体,以阻止使用密钥搜索的硬件实现.

    key是用户输入的密码.

    salt是从集合[a-zA-Z0-9./]中选择的双字符串.该字符串用于以4096种不同方式之一扰乱算法.

红宝石

  • 隐窝

    通过调用标准库函数crypt将单向加密哈希应用于str.参数是salt字符串,它应该是两个字符长,每个字符都是从[a-zA-Z0-9./]中提取的.

PHP

  • 隐窝

    crypt()将使用标准的基于Unix DES的加密算法或系统上可用的替代算法返回加密字符串.

蟒蛇

  • crypt.crypt

    该模块实现了crypt(3)例程的接口,该例程是基于修改的DES算法的单向散列函数;

C#

.NET Framework不包含Unix crypt函数的API ,但是这里有一些提供实现的库:

  • CryptAPI

    CryptAPI是一个C#库,它包含.NET框架中的未实现算法(NT,NTLM,BlowFish,DES和MD5),用于链接和模拟在C#中重新编程的crypt()unix函数.主要目的是提供向后兼容性.

  • Unix crypt的AC#实现()