gpt4 book ai didi

c# - 此 PHP 加密代码中使用的函数的 C# 等效项是什么?

转载 作者:太空宇宙 更新时间:2023-11-03 22:20:29 25 4
gpt4 key购买 nike

我使用codeigniter(PHP框架)的加密类有一段时间了,需要将PHP中的这些函数转换成C#。这样我的 C# 应用程序就可以解密网站数据库中的数据,反之亦然。

问题是我最近才开始使用 C#,所以不太了解与 PHP 功能相同的函数名称。

如果我可以转换这 3 个函数,我相信我自己也可以完成它们相反的 3 个函数,因为它们使用的函数非常接近。

注意: 除了玩玩之外,请不要尝试使用这些功能 - 它们不是强密码术(事实上,所使用的方法甚至可以在发明之前被破解计算机)。

/**
* XOR Encode
*
* Takes a plain-text string and key as input and generates an
* encoded bit-string using XOR
*
* @access private
* @param string
* @param string
* @return string
*/
function _xor_encode($string, $key)
{
$rand = '';
while (strlen($rand) < 32)
{
$rand .= mt_rand(0, mt_getrandmax());
}

$rand = $this->hash($rand);

$enc = '';
for ($i = 0; $i < strlen($string); $i++)
{
$enc .= substr($rand, ($i % strlen($rand)), 1).(substr($rand, ($i % strlen($rand)), 1) ^ substr($string, $i, 1));
}

return $this->_xor_merge($enc, $key);
}

/**
* XOR key + string Combiner
*
* Takes a string and key as input and computes the difference using XOR
*
* @access private
* @param string
* @param string
* @return string
*/
function _xor_merge($string, $key)
{
$hash = $this->hash($key);
$str = '';
for ($i = 0; $i < strlen($string); $i++)
{
$str .= substr($string, $i, 1) ^ substr($hash, ($i % strlen($hash)), 1);
}

return $str;
}

/**
* Adds permuted noise to the IV + encrypted data to protect
* against Man-in-the-middle attacks on CBC mode ciphers
* http://www.ciphersbyritter.com/GLOSSARY.HTM#IV
*
* Function description
*
* @access private
* @param string
* @param string
* @return string
*/
function _add_cipher_noise($data, $key)
{
$keyhash = $this->hash($key);
$keylen = strlen($keyhash);
$str = '';

for ($i = 0, $j = 0, $len = strlen($data); $i < $len; ++$i, ++$j)
{
if ($j >= $keylen)
{
$j = 0;
}

$str .= chr((ord($data[$i]) + ord($keyhash[$j])) % 256);
}

return $str;
}


/**
* Hash encode a string
*
* @access public
* @param string
* @return string
*/
function hash($str)
{
return ($this->_hash_type == 'sha1') ? sha1($str) : md5($str);
}

最佳答案

我会给你一些小提示。所有类似 C 的构造和运算符都按原样进行,其他:

  • strlen - String.Length
  • substr - String.Substring
  • >。 - +, .= - +=
  • chr(c) - (byte)c
  • ord(i) - (char)i

关于c# - 此 PHP 加密代码中使用的函数的 C# 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3276464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com