C#은 서명 base64 디코딩 및 인코딩에 3DES-MAC를 사용합니다.

여기에 이미지 설명을 삽입하세요.
**

3DES-맥

**
3DES-MAC(Triple Data Encryption Standard Message Authentication Code)는 메시지의 무결성과 신뢰성을 검증하는 데 사용되는 메시지 인증 코드(MAC) 알고리즘입니다. 3DES-MAC는 3DES(Triple Data Encryption Standard) 암호화 알고리즘의 일부를 사용하여 MAC 값을 생성합니다. 다음은 3DES-MAC를 사용하여 메시지에 서명하는 방법을 보여주는 C# 예제입니다.

먼저, 프로젝트에서 System.Security.Cryptography네임스페이스 가 참조되는지 확인해야 합니다.

C# base64 디코딩 및 인코딩

using System;
using System.Security.Cryptography;
using System.Text;

class Program
{
    
    
    static void Main()
    {
    
    
        // 密钥和消息
        string key = "ThisIsASecretKey"; // 密钥长度必须是24字节(192位)
        string message = "Hello, World!";

        // 使用3DES-MAC签名消息
        string mac = Sign3DESMAC(key, message);
        Console.WriteLine("3DES-MAC 签名: " + mac);

        // 验证3DES-MAC签名
        bool isVerified = Verify3DESMAC(key, message, mac);
        if (isVerified)
        {
    
    
            Console.WriteLine("消息验证成功!");
        }
        else
        {
    
    
            Console.WriteLine("消息验证失败!");
        }
    }

    // 使用3DES-MAC签名消息
    static string Sign3DESMAC(string key, string message)
    {
    
    
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] messageBytes = Encoding.UTF8.GetBytes(message);

        using (TripleDESCryptoServiceProvider des = new TripleDESCryptoServiceProvider())
        {
    
    
            des.Key = keyBytes;
            des.Mode = CipherMode.ECB; // 3DES-MAC通常使用ECB模式
            des.Padding = PaddingMode.PKCS7; // PKCS7填充

            using (HMACMD5 hmac = new HMACMD5(des.Key))
            {
    
    
                byte[] hashBytes = hmac.ComputeHash(messageBytes);
                return BitConverter.ToString(hashBytes).Replace("-", "").ToLower();
            }
        }
    }

    // 验证3DES-MAC签名
    static bool Verify3DESMAC(string key, string message, string macToVerify)
    {
    
    
        string calculatedMAC = Sign3DESMAC(key, message);
        return string.Equals(calculatedMAC, macToVerify, StringComparison.OrdinalIgnoreCase);
    }
}

위의 예에서는 3DES 알고리즘(일반적으로 ECB 모드)의 일부와 HMAC-MD5 해싱 알고리즘을 사용하여 3DES-MAC 서명을 생성했습니다. 키의 길이는 24바이트(192비트)여야 하며 Sign3DESMAC메서드를 사용하여 메시지 서명을 생성하고 Verify3DESMAC메서드를 사용하여 확인할 수 있다는 점을 기억하세요.

최신 암호화 표준이 더 일반적으로 사용되기 때문에 3DES-MAC는 실제로 덜 일반적입니다. 보안이 중요한 문제인 경우 HMAC-SHA256 이상과 같은 더 강력한 암호화 및 서명 알고리즘을 사용하는 것이 좋습니다.

base64 디코딩 및 인코딩

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

namespace FT_Tools
{
    
    
    using System;
    using System.Text;

    class Base64
    {
    
    
        public static void MainTest()
        {
    
    
            // 要加密的原始字符串
            string originalText = "Hello, World!";

            // 加密成Base64字符串
            string base64EncodedText = EncodeBase64(originalText);
            Console.WriteLine("Base64 编码结果: " + base64EncodedText);

            // 解密Base64字符串
            string decodedText = DecodeBase64(base64EncodedText);
            Console.WriteLine("Base64 解码结果: " + decodedText);
        }

        // 使用Base64编码字符串
        public static string EncodeBase64(string text)
        {
    
    
            byte[] bytesToEncode = Encoding.UTF8.GetBytes(text);
            string encodedText = Convert.ToBase64String(bytesToEncode);
            return encodedText;
        }

        // 使用Base64解码字符串
        public static string DecodeBase64(string encodedText)
        {
    
    
            byte[] decodedBytes = Convert.FromBase64String(encodedText);
            string decodedText = Encoding.UTF8.GetString(decodedBytes);
            return decodedText;
        }
    }

}

Guess you like

Origin blog.csdn.net/chenhao0568/article/details/132665386