C# 获取SHA256码

1. 如果是要获得某个字符串的SHA256,代码如下:

        public static string SHA256(string str)
        {
            //如果str有中文,不同Encoding的sha是不同的!!
            byte[] SHA256Data = Encoding.UTF8.GetBytes(str);

            SHA256Managed Sha256 = new SHA256Managed();
            byte[] by = Sha256.ComputeHash(SHA256Data);

            return BitConverter.ToString(by).Replace("-", "").ToLower(); //64
            //return Convert.ToBase64String(by);                         //44
        }

2. 如果想要获得某个文件的SHA256, 代码如下:

  

        public string SHA256()
        {

           string str = @"C:\Users\ICCWDT_Driver\iccwdt.sys";
            FileStream stream = new FileStream(str, FileMode.Open);

            SHA256Managed Sha256 = new SHA256Managed();
            byte[] by = Sha256.ComputeHash(stream);

            return BitConverter.ToString(by).Replace("-", "").ToLower(); //64
            //return Convert.ToBase64String(by);                         //44
        }

3. 通过查看系统的API可以看到可以传入的参数有两种:就是传入byte[]类型或者Stream类型

  

        // 摘要:
        //     计算指定字节数组的哈希值。
        //
        // 参数:
        //   buffer:
        //     要计算其哈希代码的输入。
        //
        // 返回结果:
        //     计算所得的哈希代码。
        //
        // 异常:
        //   System.ArgumentNullException:
        //     buffer 为 null。
        //
        //   System.ObjectDisposedException:
        //     此对象已释放。
public byte[] ComputeHash(byte[] buffer);
        //
        // 摘要:
        //     计算指定 System.IO.Stream 对象的哈希值。
        //
        // 参数:
        //   inputStream:
        //     要计算其哈希代码的输入。
        //
        // 返回结果:
        //     计算所得的哈希代码。
        //
        // 异常:
        //   System.ObjectDisposedException:
        //     此对象已释放。
public byte[] ComputeHash(Stream inputStream);

  

时间: 2024-10-31 21:10:47

C# 获取SHA256码的相关文章

【反射之Method】如何获取字节码对象中的方法

■获取字节码对象的方法有两种 第一种:使用字节码对象获取所有的方法(只能获取公有的方法,而不能获取私有/受保护的方法) 语法: Class.getMethods() 示例: Method[] methods = personClass.getMethods(); 第二种:使用字节码对象获取对象指定的方法,其参数:1.方法名:2.传入方法的参数类型加上".class" 语法: Class.getMethod(String name, Class<?>... parameter

【随笔】从gitHub上获取源码

有时候,需要从gitHub上获取源码,下面介绍几个方法: 1.获取链接: 打开gitHub代码库的页面,能在右边看到这个: 点击红圈里的标记,该链接就会复制下来. 然后,如果安装了小乌龟(TortoiseGit),就可以获取该源码了. 首先点击右键,选择小乌龟的选项: 然后在出现的窗口中粘上刚才复制的链接,以及选择主目录: 点击OK,现在,你就可以用小乌龟来获取源码或者上传源码了. 在Linux中,可以使用命令: git clone https://github.com/ajaxorg/ace.

JS获取键盘码并判断按键

本文涉及语法: onkeydown //当键盘按下 onkeyup //当键盘被松开 onkeypress //按键被按下并释放一个键时 even.keyCode //获取键盘码 String.fromCharCode() //可接受一个可指定的unicode值,返回一个字符串 代码如下: <!doctype html> <html lang="zh-en"> <head> <meta charset="utf-8" /&g

原生socket请求url获取状态码、消息报头、响应正文

需求: 1 (1)使用socket及ssl模块写通用的web客户端 2 (2)向服务器发起请求 3 (3)接受响应内容并解析出状态码.消息报头.响应正文 4 (4)最核心的函数: 输入一个url,返回状态码.消息报头.响应正文:当然这也是最后实现的效果 知识储备: 网络基础知识 python的web编程(socket) 最后实现代码: 1 # __author__ = "wyb" 2 # date: 2018/6/5 3 # 代码: 高内聚低耦合 -> 使用函数封装一些逻辑代码

接口测试——HttpClient工具的https请求、代理设置、请求头设置、获取状态码和响应头

转自:https://www.cnblogs.com/hong-fithing/p/7617855.html https请求 https协议(Secure Hypertext Transfer Protocol) : 安全超文本传输协议, HTTPS以保密为目标研发, 简单讲HTTPS协议是由SSL+HTTP协议构建的可进行加密传输. 身份认证的网络协议, 其安全基础是SSL协议, 因此加密的详细内容请看SSL. 全称Hypertext Transfer Protocol overSecure

用Java发起HTTP请求与获取状态码(含状态码列表)

转自:https://blog.csdn.net/xyw591238/article/details/51072697 在使用Java请求Web程序比如访问WebService接口时,通常需要先判断访问URL的有效性,这里就Java发送HTTP请求的方式做简单记录,按照前辈们的说法,Java发HTTP请求,最常见的无非是两种,一种是用java.net.URLConnection,另一种则是大名鼎鼎的HttpClient.使用java.net.URLConnection比较麻烦,而HttpClie

获取IMEI码

核心代码: Imei = ((TelephonyManager) getSystemService(TELEPHONY_SERVICE)).getDeviceId(); 1.加入权限 在manifest.xml文件中要添加 <uses-permission android:name="android.permission.READ_PHONE_STATE" /> 2.代码如下: /** * *@author dingran *创建日期 2010-4-29 下午05:02:4

android studio中如何获取sha1 码 和签名

在使用百度地图的时候为了获取KEY,需要输入发布版sha1码和调试版sha1码. 首先按照官方给出的命令 获取调试版sha1码 : 开发模式使用 debug.keystore,命令为:keytool -list -v -keystore debug.keystore 直接这样输入你可能报错 keytool 不是内部命令也不是可运行程序.这是因为keytool是java jdk自带工具的命令,你这时要切换到D:\Program Files\Java\jdk1.7.0_67\bin目录下才能使用该命

获取字节码的三种方式

获取java字节码有三种方式,假设要获得的字节码的类为requireClass 1 使用类的静态方法 Class classOne = requireClass.class; 2 使用类对象的getClass方法 Class classTwo = requireClassInstance.getClass; 3 使用Class类的静态方法 Class.forName Class classThree = Class.forName("类的全路径名"); 在反射的实际应用中通常采用第三种