问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

谁能帮我将java中的DES算法改成用C#来实现?

发布网友 发布时间:2023-08-17 08:34

我来回答

3个回答

热心网友 时间:2024-11-24 16:47

C#也有DES加密。

using System;
using System.IO;
using System.Security.Cryptography;
using System.Text;
using System.Text.RegularExpressions;

/// <summary>
/// DES加密解密
/// </summary>
public static class DES
{

//默认密钥向量
private static byte[] Keys = { 0x12, 0x34, 0x56, 0x78, 0x90, 0xAB, 0xCD, 0xEF };

/// <summary>
/// DES加密字符串
/// </summary>
/// <param name="encryptString">待加密的字符串</param>
/// <param name="encryptKey">加密密钥,要求为8位</param>
/// <returns>加密成功返回加密后的字符串,失败返回源串</returns>
public static string Encode(string encryptString, string encryptKey)
{
encryptKey = StringHelper.GetSubString(encryptKey, 8, "");
encryptKey = encryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(encryptKey.Substring(0, 8));
byte[] rgbIV = Keys;
byte[] inputByteArray = Encoding.UTF8.GetBytes(encryptString);
DESCryptoServiceProvider dCSP = new DESCryptoServiceProvider();
MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, dCSP.CreateEncryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Convert.ToBase64String(mStream.ToArray());

}

/// <summary>
/// DES解密字符串
/// </summary>
/// <param name="decryptString">待解密的字符串</param>
/// <param name="decryptKey">解密密钥,要求为8位,和加密密钥相同</param>
/// <returns>解密成功返回解密后的字符串,失败返源串</returns>
public static string Decode(string decryptString, string decryptKey)
{
try
{
decryptKey = StringHelper.GetSubString(decryptKey, 8, "");
decryptKey = decryptKey.PadRight(8, ' ');
byte[] rgbKey = Encoding.UTF8.GetBytes(decryptKey);
byte[] rgbIV = Keys;
byte[] inputByteArray = Convert.FromBase64String(decryptString);
DESCryptoServiceProvider DCSP = new DESCryptoServiceProvider();

MemoryStream mStream = new MemoryStream();
CryptoStream cStream = new CryptoStream(mStream, DCSP.CreateDecryptor(rgbKey, rgbIV), CryptoStreamMode.Write);
cStream.Write(inputByteArray, 0, inputByteArray.Length);
cStream.FlushFinalBlock();
return Encoding.UTF8.GetString(mStream.ToArray());
}
catch
{
return "";
}

}

}

热心网友 时间:2024-11-24 16:47

.net framework里面有DES库,直接用就是了

热心网友 时间:2024-11-24 16:48

不会JAVA O(∩_∩)O~
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
巴西龟最长活多久,家养!!! 养胃的药最好的是什么啊 婴儿积食发烧不愿吃药怎么办 板门穴位在哪个部位 手机设置放偷看的方法? 凝结水回收器生产厂家? 个人账户养老金预测公式:现有5万元,缴费20年,能领多少钱? 临沂比较有名的男装品牌 呼伦贝尔市悦动网络科技有限公司怎么样? 呼伦贝尔中汇实业有限公司怎么样? 安全生产许可证有效期为几年啊 苹果5s怎样听语音不让它打断歌曲 天蝎女越在乎越不理,这是为什么,一起来看看? 什么日子请龙龟好 ...内液流了,换个内屏要多少钱?我的手机是华为畅享9plus 梦见让自己当外科医生的预兆 并不会特别的炽热或热烈,相处舒适注意分寸,天秤女撩人是什么样的? 开始节省,天秤座女生想追一个人会有哪些表现呢? 模拟人生手机版怎么关背景音乐 哪些星座的女人会当小三 天秤座女生当小三潜力 西宁育仕教育咨询服务有限公司怎么样? Aramex HK LTD-sNS 翻译中文 感冒怎么办?? 向天秤座男生表白最好的方式 原神3.3版本更新后闪退怎么办 原神私服闪退 天秤女容易被什么男人吸引 梦游天姥吟留别的常见默写有哪些? 天秤女其实是一个很成熟的女生,该怎么让天秤座女生注意你呢? 冒险岛合区的意思 冒险岛蘑菇仔和青鳄鱼通区是如何回事大神们帮帮忙 CPⅢ平面控制测量一测回2C互差要求:()。 美国在中非外交关系之间扮演什么角色 中非有欧美国家开矿吗 非洲到美国多少个小时飞机 中非共和国的外国援助 漫画party非常小子为什么出一半不出了 漫画Party里面最近怎么不见刘飒的作品了 我有一个四角羊头,请问哪里可以加工成工艺品 我的手机是vivo,我把别人发来的语音收藏了起来。怎么再打开听啊?还有怎... 苹果手机能不能登两个? 苹果手机可以不升级系统吗 弯沉是什么意思 三峡船闸是目前世界上最大的双线五级船闸,如图所示是船闸的示意图... 水坝门的作用 如图所示是客轮通过三峡大坝时进入闸室的情形.如图所示,当上游客轮进 ... 三角高程测量2c怎么算 水平角怎么算? 2″的全站仪和2c值限差分别是多少