C# OpenSSL.Net 實作測試

C# OpenSSL.Net 實作測試

C# OpenSSL.Net 實作測試


資料來源:https://www.cnblogs.com/azeri/p/8972432.html

https://bit.ly/3sZvZlG


GITHUB: https://github.com/jash-git/CS_OpenSSLNet


    最近在工作中遇到需要對數據傳輸進行加密解密,一開始是.Net與.Net環境間進行交互,使用.Net下的【System.Security.Cryptography】完全沒有問題,但後來要與Java,Android ,IOS進行交互,結果是怎麼都對不上,在查看後得知三者平台都使用的OpenSSL進行的加解密,於是就翻出了OpenSSL.Net

最簡易的 OpenSSL.Net 測試碼:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

using OpenSSL.Core;
using OpenSSL.Crypto;

//https://www.cnblogs.com/azeri/p/8972432.html
//https://github.com/openssl-net/openssl-net

namespace CS_OpenSSLNet
{
    class Program 
    {
        static void Pause()
        {
            Console.Write("Press any key to continue...");
            Console.ReadKey(true);
        }
        public static string MD5(string text, Encoding encoding)
        {
            return HashDigest(text, encoding, MessageDigest.MD5);
        }

        public static string SHA1(string text, Encoding encoding)
        {
            return HashDigest(text, encoding, MessageDigest.SHA1);
        }

        private static string HashDigest(string text, Encoding encoding, MessageDigest hashType)
        {
            using (MessageDigestContext hashDigest = new MessageDigestContext(hashType))
            {
                byte[] hashBytes = encoding.GetBytes(text);
                byte[] signByte = hashDigest.Digest(hashBytes);
                return BitConverter.ToString(signByte).Replace(" - ", "").ToLower();
            }
        }
        static void Main(string[] args)
        {
            var ciphertext = MD5(" Md5加密。", Encoding.UTF8);
            Console.Write(ciphertext+"\n");
            ciphertext = SHA1(" SHA1加密。", Encoding.UTF8);
            Console.Write(ciphertext+"\n");
            Pause();
        }
    }
}

發表迴響

你的電子郵件位址並不會被公開。 必要欄位標記為 *