C# 采用3DES-MAC进行签名 base64解码与编码

这篇具有很好参考价值的文章主要介绍了C# 采用3DES-MAC进行签名 base64解码与编码。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

C# 采用3DES-MAC进行签名 base64解码与编码,C#,c#,elasticsearch,macos
**

3DES-MAC

**
3DES-MAC(Triple Data Encryption Standard Message Authentication Code)是一种消息认证码(MAC)算法,用于验证消息的完整性和真实性。3DES-MAC使用了3DES(Triple Data Encryption Standard)加密算法的一部分来生成MAC值。以下是使用C#示例演示如何使用3DES-MAC签名一个消息:

首先,你需要确保在你的项目中引用了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或更高级的算法。文章来源地址https://www.toymoban.com/news/detail-700253.html

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;
        }
    }

}

到了这里,关于C# 采用3DES-MAC进行签名 base64解码与编码的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 3DES实验 思考与练习:

    T1:关于3DES的分析 和 库函数的思考——完全领悟了!!! 分析过程: T(2): 使用openssl库函数 实现 DES加密: 使用函数DES_ecb_encrypt来进行数据加解密 void DES_ecb_encrypt(const_DES_cblock *input,DES_cblock *output, DES_key_schedule *ks,int enc); 函数功能说明:DES ECB计算 参数说明: input: 输入数据;

    2024年02月03日
    浏览(30)
  • 【密码算法 之一】对称加密算法 DES \ 3DES 浅析

      DES(Data Encryption Standard)是1977年美国联邦信息处理标准(FIPS)中所采用的一种对称密码(FIPS 46-3)。DES一直以来被美国以及其它国家的政府和银行等广泛使用。   然而,随着计算机的进步,现在DES已经能够被暴力破解,强度大不如从前了。20世纪末,RSA公司举办过破

    2024年02月09日
    浏览(45)
  • 密码学之DES,3DES与Python实现AES

    最近项目中需要用到DES,3DES解密算法,所以了解一下。正好CSDN上有关于DES,3DES的资料。边看边写一下总结。 密码学之DES,3DES详解与Python实现 DES(Data Encryption Standard-数据加密标准)属于对称加密,即使用相同的密钥来完成加密和解密。分组长度为8个字节64bit(密钥每个字节的最

    2024年02月08日
    浏览(25)
  • Java 中常见的加密算法,DES、3DES、AES、RSA

    加密算法是一种将数据转换为不可读形式的算法,以保护数据的机密性和完整性。加密算法被广泛应用于计算机网络、数据库、电子商务等领域,用于保护敏感数据的安全性,如用户密码、信用卡信息、医疗记录等。在 Java 中,有许多常见的加密算法,本文将对加密算法的基

    2024年02月03日
    浏览(43)
  • JavaScript学习 -- 对称加密算法3DES

    在现代的互联网时代,数据安全性备受关注。为了保护敏感数据的机密性,对称加密算法是一种常用的方法。在JavaScript中,3DES(Triple Data Encryption Standard)是一种常用的对称加密算法。本篇博客将为您展示如何在JavaScript中使用3DES算法进行加密和解密,并提供一个实际的例子

    2024年02月14日
    浏览(37)
  • Sweet32漏洞,升级openssl或者禁用3DES和DES弱加密算法

    由于等保的原因,被服务商扫描出漏洞。 warnings: | 64-bit block cipher 3DES vulnerable to SWEET32 attack 如何不喜欢使用nmap,也可以使用如下工具testssl.sh,但是输出的内容太多了,本次我只截取部分 解决办法有两个,一个是升级OpenSSL 1.0.2k-fips 26 Jan 2017 以上,另外一个是更新nginx配置,禁

    2024年02月11日
    浏览(31)
  • DES和3DES等常见加解密的关键要素---安全行业基础篇3

    DES和3DES是对称加密算法,其加密和解密的关键要素包括: 密钥:DES和3DES使用相同长度的密钥进行加密和解密。DES使用56位密钥,而3DES可以使用112位或168位密钥。密钥是保护数据安全的关键,必须保持机密并只与授权用户共享。 明文:明文是要加密的原始数据。在DES/3DES中,

    2024年02月09日
    浏览(31)
  • 关于怎么使用python实现 3DES 加密/解密

    3DES (Triple DES) 是一种对称加密算法,其特点是使用三次密钥加密来提高安全性。 3DES的原理是:对明文进行三次加密,每次加密的密钥不同。加密时,首先使用第一个密钥对明文进行加密,然后使用第二个密钥对加密后的数据进行解密,最后再使用第三个密钥对解密后的数据

    2024年02月15日
    浏览(28)
  • 通俗易懂,十分钟读懂DES,详解DES加密算法原理,DES攻击手段以及3DES原理。Python DES实现源码

    DES(Data Encryption Standard)是一种 对称加密 算法。它是在20世纪70年代初期由IBM研发的。它的设计目标是提供高度的数据安全性和性能,并且能够在各种硬件和软件平台上实现。 DES使用56位的密钥和64位的明文块进行加密。DES算法的分组大小是64位,因此,如果需要加密的明文长

    2024年02月03日
    浏览(62)
  • 国密算法签名与加密结果字节长度变化及Hex与Base64编码长度变化

    有很多应用场景,数据通常经过加密和编码后传输,有时我们需要知道经过处理后的数据的长度,此时就需要分析各种算法的数据处理策略,及结果变化。下边主要介绍国密SM2算法签名与加密结果字节长度变化及Hex与Base64编码长度变化。 1,ASCII码:一个英文字母(不分大小写

    2024年02月02日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包