java与C# DESc 字符串加密解密解密,求c#的加解密方法

您所在的位置: &
C#DES算法加密解密实例解析
C#DES算法加密解密实例解析
C#DES算法加密解密的应用还是比较广泛的尽管它已失去昔日的光辉,但是掌握C#DES算法加密解密还是十分有用的。
C# DES算法加密解密作为我们开发中的安全部分我们需要明白它的使用,虽然56位密钥的DES算法已经风光不在,而且常有用Des加密的明文被破译的报道,但是了解一下昔日美国的标准加密算法总是有益的,而且目前DES算法得到了广泛的应用,在某些场合,仍然发挥着余热。
C# DES算法加密解密特点:分组比较短、密钥太短、密码生命周期短、运算速度较慢。C# DES算法加密解密工作的基本原理:其入口参数有三个:key、data、mode。key为加密解密使用的密钥;data为加密解密的数据;mode为其工作模式。
C# DES算法加密解密核心代码演示:DES是常用的对称加密解密方法
///&&summary& &&&&&&public&string&Encrypt(string&pToEncrypt,&string&sKey) &{ &using&(DESCryptoServiceProvider&des&=& &new&DESCryptoServiceProvider()) &{ &byte[]&inputByteArray&=&Encoding.UTF8.GetBytes(pToEncrypt); &des.Key&=&ASCIIEncoding.ASCII.GetBytes(sKey); &des.IV&=&ASCIIEncoding.ASCII.GetBytes(sKey); &System.IO.MemoryStream&ms&=&new&System.IO.MemoryStream(); &using&(CryptoStream&cs&=&new&CryptoStream(ms,& &des.CreateEncryptor(),&CryptoStreamMode.Write)) &{ &cs.Write(inputByteArray,&0,&inputByteArray.Length); &cs.FlushFinalBlock(); &cs.Close(); &} &string&str&=&Convert.ToBase64String(ms.ToArray()); &ms.Close(); &return& &} &} &&///&&summary& &&&&&&public&string&Decrypt(string&pToDecrypt,&string&sKey) &{ &byte[]&inputByteArray&=&Convert.FromBase64String(pToDecrypt); &using&(DESCryptoServiceProvider&des&=& &new&DESCryptoServiceProvider()) &{ &des.Key&=&ASCIIEncoding.ASCII.GetBytes(sKey); &des.IV&=&ASCIIEncoding.ASCII.GetBytes(sKey); &System.IO.MemoryStream&ms&=&new&System.IO.MemoryStream(); &using&(CryptoStream&cs&=&new&CryptoStream(ms, &&des.CreateDecryptor(),&CryptoStreamMode.Write)) &{ &cs.Write(inputByteArray,&0,&inputByteArray.Length); &cs.FlushFinalBlock(); &cs.Close(); &} &string&str&=&Encoding.UTF8.GetString(ms.ToArray()); &ms.Close(); &return& &} &} &
C# DES算法加密解密的基本情况就向你介绍到这里,希望对你了解和学习C# DES算法加密解密有所帮助。
【编辑推荐】
【责任编辑: TEL:(010)】
关于的更多文章
Angular.js 是一个MV*(Model-View-Whatever,不管是MVC或者MVVM
本次的专刊为大家提供了Oracle最新推出的Java SE 8详细的开发教程,从解读到探究Java 8最新
十一长假归来上班,好像更累了;早上也越来越堵了。小
数据结构课程,貌似是大学计算机、网络、软件等专业的
JavaScript正凭借新型工具与功能提升以极度夸张的速度
本书的第1版获得过“2006年度全行业优秀畅销品种奖”。全书共15章,分别介绍了网管员职责和应具备的工作习惯、共享上网与访问控
51CTO旗下网站java与C++的DES加密与解密 - 温水青蛙的池塘 - ITeye技术网站
博客分类:
& DES(Data Encryption Standard)算法,于1977年得到美国政府的正式许可,是一种用56位密钥来加密64位数据的方法。一般密码长度为8个字节,其中56位加密密钥,每个第8位都用作奇偶校验。
&& DES的几种工作方式
第一种电子密本方式(ECB)
&& 将明文分成n个64比特分组,如果明文长度不是64比特的倍数,则在明文末尾填充适当数目的规定符号。对明文组用给定的密钥分别进行加密,行密文C=(C0,C1,……,Cn-1)其中Ci=DES(K,xi),i=0,1,…..,n-1。
& 第二种密文分组链接方式(CBC)
&& 在CBC方式下,每个明文组xi在加密前与先一组密文按位模二加后,再送到DES加密,CBC方式克服了ECB方式报内组重的缺点,但由于明文组加密前与一组密文有关,因此前一组密文的错误会传播到下一组。
& 第三种密文反馈方式(CFB),可用于序列密码
&& 明文X=(x0,x1,……,xn-1),其中xi由t个比特组成0&& 第四种输出反馈方式(OFB),可用于序列密码
&& 与CFB唯一不同的是OFB是直接取DES输出的t个比特,而不是取密文的t个比特,其余都与CFB相同。但它取的是DES的输出,所以它克服了CFB的密文错误传播的缺点
&& DES的几种填补方式
&& DES是对64位数据的加密算法,如数据位数不足64位的倍数,需要填充,补充到64位的倍数。
&& NoPadding
&& API或算法本身不对数据进行处理,加密数据由加密双方约定填补算法。例如若对字符串数据进行加解密,可以补充\0或者空格,然后trim
&& PKCS5Padding
&& 加密前:数据字节长度对8取余,余数为m,若m&0,则补足8-m个字节,字节数值为8-m,即差几个字节就补几个字节,字节数值即为补充的字节数,若为0则补充8个字节的8
&& 解密后:取最后一个字节,值为m,则从数据尾部删除m个字节,剩余数据即为加密前的原文
&& SSL3Padding
&& SSL3.0协议定义的填补算法
&& java默认的DES算法实现方式为DES/ECB/PKCS5Padding。若c++或其他语言与java进行加解密互通,若java采用默认实现,另一方工作方式和填补算法必须都是用ECB和PKCS5Padding。
bloodwolf_china
浏览: 63960 次
请问这个类&com.viva.server.mess ...
学习了,向楼主致敬
这篇文章还是很有用的,为什么没人顶呢,不厚道哦~
这个怎么能算陷阱呢,这个在初学Groovy的时候,文档教程上都 ...
1楼的兄弟:好像俺没去过苏州啊,那里的人名就知道我了?
2楼的 ...javaC#共用des加密解密 - 下载频道 - CSDN.NET
&&&&javaC#共用des加密解密
&javaC#共用des加密解密
javaC#共用des加密解密方法,上面为C#代码,下面注释则为java代码
若举报审核通过,可奖励20下载分
被举报人:
举报的资源分:
请选择类型
资源无法下载
资源无法使用
标题与实际内容不符
含有危害国家安全内容
含有反动色情等内容
含广告内容
版权问题,侵犯个人或公司的版权
*详细原因:
您可能还需要
Q.为什么我点的下载下不了,但积分却被扣了
A. 由于下载人数众多,下载服务器做了并发的限制。若发现下载不了,请稍后再试,多次下载是不会重复扣分的。
Q.我的积分不多了,如何获取积分?
A. 获得积分,详细见。
完成任务获取积分。
评价资源返积分。
论坛可用分兑换下载积分。
第一次绑定手机,将获得5个C币,C币可。
下载资源意味着您已经同意遵守以下协议
资源的所有权益归上传用户所有
未经权益所有人同意,不得将资源中的内容挪作商业或盈利用途
CSDN下载频道仅提供交流平台,并不能对任何下载资源负责
下载资源中如有侵权或不适当内容,
本站不保证本站提供的资源的准确性,安全性和完整性,同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
开发技术下载排行
你下载资源过于频繁,请输入验证码
如何快速获得积分?
你已经下载过该资源,再次下载不需要扣除积分
javaC#共用des加密解密
所需积分:2
剩余积分:
VIP会员,免积分下载
会员到期时间:日
剩余下载次数:1000
VIP服务公告:14:32 提问
用C#解密JAVA的AES加密字符串
附JAVA的加密方法
public static String encrypt(String s, String token) {
byte[] key = Hex.toBytes(token);
return encryptBase64URLSafe(s, key);
} catch (Exception e) {
e.printStackTrace();
public static byte[] toBytes(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i & i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) && 4)
+ Character.digit(s.charAt(i + 1), 16));
private static String encryptBase64URLSafe(String s, byte[] key) {
BaseEncoding b64 = BaseEncoding.base64Url().omitPadding();
byte[] encryptedBytes = encryptBytes(s, key);
return b64.encode(encryptedBytes);
private static byte[] encryptBytes(String s, byte[] key) {
if (key == null) {
// 判断Key是否为16位
if (key.length != 16) {
SecretKeySpec skeySpec = new SecretKeySpec(key, "AES");
Cipher cipher = Cipher.getInstance(ALGORITHM);
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(s.getBytes("utf-8"));
} catch (Exception e) {
这个用C#怎么解密啊,大家帮帮忙,我尝试了很多方法都不行
在Convert.FromBase64String(encryptedText);时就报错
按赞数排序
保证加解密算法是对称的
其实加解密的数据格式都一致
其他相似问题
相关参考资料

我要回帖

更多关于 c 字符串加密解密 的文章

 

随机推荐