麻烦大神帮我将这段PHP代码转成c#代码

qq554006164 2016-02-17 09:27:10

<?php

$salted="abcdefghijklm";

$digest = hash("sha256", $salted, true);

for ($i = 1; $i < 5000; ++$i) {
$digest = hash("sha256", $digest.$salted, true);
}

echo base64_encode($digest) ;
?>

...全文
132 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq554006164 2016-02-17
  • 打赏
  • 举报
回复
引用 7 楼 xuzuning 的回复:
            var salted = "abcdefghijklm";
            var s = Encoding.ASCII.GetBytes(salted);
            var hasher = new SHA256Managed();
            hasher.ComputeHash(s);
            for (var i = 0; i < 5000-1; i++)
            {
                hasher.ComputeHash(hasher.Hash.Concat(s).ToArray());
            }
            Console.WriteLine(Convert.ToBase64String(hasher.Hash, Base64FormattingOptions.None));
F+TfwIODel8hANq7BYB2yMUpxtI5MG8mS8EICI4Xxbw=
OK了,谢谢
xuzuning 2016-02-17
  • 打赏
  • 举报
回复
            var salted = "abcdefghijklm";
            var s = Encoding.ASCII.GetBytes(salted);
            var hasher = new SHA256Managed();
            hasher.ComputeHash(s);
            for (var i = 0; i < 5000-1; i++)
            {
                hasher.ComputeHash(hasher.Hash.Concat(s).ToArray());
            }
            Console.WriteLine(Convert.ToBase64String(hasher.Hash, Base64FormattingOptions.None));
F+TfwIODel8hANq7BYB2yMUpxtI5MG8mS8EICI4Xxbw=
qq554006164 2016-02-17
  • 打赏
  • 举报
回复

<?php
 
    $salted="abcdefghijklm";
 
     $digest = hash("sha256", $salted, true);
 
     echo $digest ;
     /*
       此处输出结果:ó“âÊÃQOνTå‰êÒ¼>ã7[Í‹x–Ðör®±D
       C#加密后输出结果:����QOνT��Ҽ>�7[͋x���r��D
    */

        for ($i = 1; $i < 5000; ++$i) {
            $digest = hash("sha256", $digest.$salted, true);
        }
 
        echo base64_encode($digest) ;
?>
qq554006164 2016-02-17
  • 打赏
  • 举报
回复
第一次的加密结果是对的,就是后面循环5000次,加密结果就不对了
qq554006164 2016-02-17
  • 打赏
  • 举报
回复

SHA256 sha256 = new SHA256Managed();
            string strKey = "abcdefghijklm";
            byte[] tmpByte = sha256.ComputeHash(Encoding.UTF8.GetBytes(strKey));
            for (int i = 1; i < 5000; ++i)
            {
                string strnew = Encoding.UTF8.GetString(tmpByte) + strKey;
                tmpByte = sha256.ComputeHash(Encoding.UTF8.GetBytes(strnew));
            }
            string key = Convert.ToBase64String(tmpByte);
            Console.WriteLine(key);
修改了下
qq554006164 2016-02-17
  • 打赏
  • 举报
回复


        public void SHA256Encrypt()
        {
            string strKey = "abcdefghijklm";
            SHA256 sha256 = new SHA256Managed();
            byte[] byteKey = GetKeyByteArray(strKey);
            byte[] byteData = sha256.ComputeHash(byteKey);
            sha256.Clear();

            for (int i = 1; i < 5000; ++i)
            {
                sha256 = new SHA256Managed();
                string strnew = GetStringValue(byteData) + strKey;
                byteData = sha256.ComputeHash(GetKeyByteArray(strnew));
                sha256.Clear();
            }

            Console.WriteLine(Convert.ToBase64String(byteData));
        }
        private string GetStringValue(byte[] Byte)
        {
            UTF8Encoding Asc = new UTF8Encoding();
            return Asc.GetString(Byte);
        }
        private byte[] GetKeyByteArray(string strKey)
        {
            UTF8Encoding Asc = new UTF8Encoding();

            int tmpStrLen = strKey.Length;

            byte[] tmpByte = new byte[tmpStrLen - 1];

            tmpByte = Asc.GetBytes(strKey);

            return tmpByte;
        }
这是我转换的,但结果对不上。不知道是哪里错了
仰望那天空 2016-02-17
  • 打赏
  • 举报
回复

public string SHA256Encrypt(string strIN)
    {
        //string strIN = getstrIN(strIN);
        byte[] tmpByte;
        SHA256 sha256 = new SHA256Managed();

        tmpByte = sha256.ComputeHash(GetKeyByteArray(strIN));
        sha256.Clear();
       
ASCIIEncoding Asc = new ASCIIEncoding();
        return Asc.GetString(tmpByte);

    }
楼主可参考一下
全栈极简 2016-02-17
  • 打赏
  • 举报
回复
又来“翻译”了,找个支持sha256算法加密的hash函数,最后Convert.ToBase64String即可。

110,545

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧