[Day 04] C#轻松取得IV值&实作SHA256 - [C#]丰收款API必备前置作业(三)

先来复习一下:
https://ithelp.ithome.com.tw/upload/images/20210918/20131205Mrjlv5ho4d.png
昨天做的是取得Nonce及HashID的部分,今天就来讲要怎麽算IV值吧!


既然顺利拿到了Nonce值後,就可以继续加工来产出IV值,有点懒所以直接引用Spec原文:

产出 IV 值前必须要先行取得 Nonce 後才能产生,计算方式是将取得的 Nonce 值作 SHA256 加密後,再将英文转换成大写取字串右边 16 码长度

C#有提供许多原生的方法来实践SHA256的运算(其实这边应该是指杂凑,官方上不知为何是写加密,两个其实是不一样的,打算之後再来补充)


因为方法实在太五花八门了,不过概念是雷同的,这边使用.Net Core作为范例:

首先要引用这个命名空间:

using System.Security.Cryptography;

再来,打包成method,将来实作上会更为方便

  public static string Get_SHA256_Hash( string value )
{
  using var hash = SHA256.Create();
  var byteArray = hash.ComputeHash( Encoding.UTF8.GetBytes( value ) );
  return Convert.ToHexString( byteArray ).ToLower();
}

取得回传值後,记得必须再用 ToUpper() 来确保转换完的字串都是大写喔
最後,右边16码长度怎麽拿呢?这真的是个超直觉的方法XD

string result = input.Right(16);

就完成拉~是不是很简单呀?(不过整个流程概念还是挺复杂的啦..

最後结果的IV值应该会像酱"CB6FA68E42B655AB"

明天会继续介绍如何用C#用AES CBC来无脑产生加密的内文讯息,See you!


<<:  Day 03 Benefits and Constraints of Embedded Systems

>>:  NetSuite Order to Cash flow - Fulfill Sales Order

Nice day 29 (iphone10s 功能挖掘)-好用捷径介绍

前言 随着时间的流逝,整个活动也接近了尾声,但在真正结束前都还是要好好地发表,今天笔者想为各位介绍一...

Day3 阿里云使用须知与中国网路

前言:   随着网路时代普及生活化,各国政府对IT资讯产业也推行了相当多的管理法案以维护网际网路使用...

Day 11 - React: Component

关於 Separation of concerns(SoC)这个地方我觉得别人写的已经很清楚了(英文...

Day 15. 常见模板 Template OS Linux / Windows by Zabbix agent 介绍

今天要跟大家介绍 在 ubuntu 安装 Zabbix Agent 时,设定的 Template O...

每个人都该学的30个Python技巧|技巧 4:字串格式化(字幕、衬乐、练习)

在昨天的影片中提到了输入命令以及输出命令,这两种是程序之中非常基本的命令,今天就稍微进阶一点,让输出...