建议和反馈

请填写你的反馈内容

感谢您对链客的信任!

恭喜您填写完个人简历!链客专注于区块链职位连接,帮助您的投递更加精准高效,赶快去选择自己心仪的岗位吧!

推动中国区块链事业发展始终是我们坚定不移的梦——链客团队

问答 > Go/Python/C++ > 问答详情
求助中

哪位大神会c#和python, 能帮我把这段c#代码用python实现吗?

public static string Encrypt(string plaintext, string key)

        {

          if (string.IsNullOrEmpty(plaintext))

          throw new ArgumentNullException(nameof(plaintext));


          if (string.IsNullOrEmpty(key))

          throw new ArgumentNullException(nameof(key));


          byte[] secrectKey = Encoding.UTF8.GetBytes(key);

          using (HMACSHA256 hmac = new HMACSHA256(secrectKey))

          {

          hmac.Initialize();


          byte[] bytes_hmac_in = Encoding.UTF8.GetBytes(plaintext);

          byte[] bytes_hamc_out = hmac.ComputeHash(bytes_hmac_in);


          string str_hamc_out = BitConverter.ToString(bytes_hamc_out);

          str_hamc_out = str_hamc_out.Replace("-", "");


          return str_hamc_out;

          }

        }


        public static string Sign(string data, string privateKey)

        {

          if (string.IsNullOrEmpty(privateKey))

          throw new ArgumentNullException(nameof(privateKey));


          if (string.IsNullOrEmpty(data))

          throw new ArgumentNullException(nameof(data));


          byte[] keyBytes = Convert.FromBase64String(privateKey);

          var key = CngKey.Import(keyBytes, CngKeyBlobFormat.EccPrivateBlob);


          using (var dsa = new ECDsaCng(key))

          {

          dsa.HashAlgorithm = CngAlgorithm.Sha256;


          byte[] dataBytes = Encoding.UTF8.GetBytes(data);


          return Convert.ToBase64String(dsa.SignData(dataBytes));

          }

        }


redbull

2019-02-11

1189

0

撰写答案

请先登陆或注册

0个回答

邀请

感谢您的善举,每一次解答会成为新人的灯塔,回答被采纳后获得20算力和相应的LK币奖励