之前提到过许多 sha256, 非对称加密等等. 在 asp.net core 里头要操作这些都是用 bytes 的.
所以需要经常 string 和 byte 之前做转换. 那就有必要了解一下了
http://www.ruanyifeng.com/blog/2007/10/ascii_unicode_and_utf-8.html
ASCII 是最古老的, 只支持英文.
unicode 支持所有字符串 (中文字, 法文等等)
utf 8, 16, 32 都是一种 unicode 的实现, 区别是存储的方式 refer : https://blog.csdn.net/jeffasd/article/details/84100607
asp.net core 我们是这样写的
var valueByte = System.Text.Encoding.ASCII.GetBytes("test"); var valueString = System.Text.Encoding.ASCII.GetString(valueByte);
System.Text.Encoding.Unicode 好像就是 utf-16 来的, 比较常用的应该是 utf-8 (网页都是跑这个啦) refer : https://stackoverflow.com/questions/12416249/hashing-a-string-with-sha256
还有一个比较常看到的是编码是 base64 和 base64url
https://zhuanlan.zhihu.com/p/384238870
base64 的坏处是会让内容比较大, 大概是变成 135% 左右.
好处就是它可以确保传输完整 (有些旧设备比如路由器是只支持 ASCII 的) base64 可以把万物只用 ASCII 可打印字符来表达. 大概是这样
asp.net core 要使用 sha256 是这样 :