首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C#中用于Java DES加密的等效代码?

在C#中,可以使用System.Security.Cryptography命名空间中的DESCryptoServiceProvider类来实现Java DES加密的等效代码。

下面是一个示例代码:

代码语言:csharp
复制
using System;
using System.Security.Cryptography;
using System.Text;

public class DESHelper
{
    public static string Encrypt(string plainText, string key, string iv)
    {
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
        byte[] plainBytes = Encoding.UTF8.GetBytes(plainText);

        using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
        {
            des.Key = keyBytes;
            des.IV = ivBytes;
            des.Mode = CipherMode.CBC;
            des.Padding = PaddingMode.PKCS7;

            using (ICryptoTransform encryptor = des.CreateEncryptor())
            {
                byte[] encryptedBytes = encryptor.TransformFinalBlock(plainBytes, 0, plainBytes.Length);
                return Convert.ToBase64String(encryptedBytes);
            }
        }
    }

    public static string Decrypt(string encryptedText, string key, string iv)
    {
        byte[] keyBytes = Encoding.UTF8.GetBytes(key);
        byte[] ivBytes = Encoding.UTF8.GetBytes(iv);
        byte[] encryptedBytes = Convert.FromBase64String(encryptedText);

        using (DESCryptoServiceProvider des = new DESCryptoServiceProvider())
        {
            des.Key = keyBytes;
            des.IV = ivBytes;
            des.Mode = CipherMode.CBC;
            des.Padding = PaddingMode.PKCS7;

            using (ICryptoTransform decryptor = des.CreateDecryptor())
            {
                byte[] decryptedBytes = decryptor.TransformFinalBlock(encryptedBytes, 0, encryptedBytes.Length);
                return Encoding.UTF8.GetString(decryptedBytes);
            }
        }
    }
}

public class Program
{
    public static void Main(string[] args)
    {
        string plainText = "Hello, World!";
        string key = "12345678";
        string iv = "87654321";

        string encryptedText = DESHelper.Encrypt(plainText, key, iv);
        Console.WriteLine("Encrypted Text: " + encryptedText);

        string decryptedText = DESHelper.Decrypt(encryptedText, key, iv);
        Console.WriteLine("Decrypted Text: " + decryptedText);
    }
}

在上述代码中,我们定义了一个DESHelper类,其中包含了Encrypt和Decrypt方法用于加密和解密操作。使用DESCryptoServiceProvider类来进行DES加密和解密,设置相应的密钥、向量、加密模式和填充模式。

在Main方法中,我们可以看到如何使用DESHelper类进行加密和解密操作。首先,我们定义了明文、密钥和向量。然后,调用Encrypt方法对明文进行加密,并输出加密后的结果。接着,调用Decrypt方法对加密后的结果进行解密,并输出解密后的明文。

请注意,这只是一个简单的示例代码,实际应用中需要根据具体需求进行适当的修改和优化。

推荐的腾讯云相关产品:腾讯云密钥管理系统(KMS),用于管理和保护加密密钥。

腾讯云产品介绍链接地址:https://cloud.tencent.com/product/kms

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券