社区
C#
帖子详情
求教:des算法的原理??
yes4pierce
2004-12-21 04:21:22
如题,des 加密,解密的算法的原理是什么,请不吝赐教。
在C#中,怎样对字符实现des加密,解密??
...全文
210
4
打赏
收藏
求教:des算法的原理??
如题,des 加密,解密的算法的原理是什么,请不吝赐教。 在C#中,怎样对字符实现des加密,解密??
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nga96
2004-12-21
打赏
举报
回复
建议先看看密码学吧,那是门很深的学问的
fanruinet
2004-12-21
打赏
举报
回复
http://www.50yi.com/book/bczl/200409/98.html
cnming
2004-12-21
打赏
举报
回复
我的blog,关于DES的
http://blog.csdn.net/cnming/archive/2004/12/09/210437.aspx
你指定好密钥即可,当然你要了解密钥的概念,DES是对称密钥的加密解密算法
#region TripleDES算法
public class ClassTripleDES
{
public ClassTripleDES()
{
}
//加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。
public static string Encrypt(string pass)
{
try
{
byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);
byte[] key = pdb.GetBytes(24);
byte[] iv = pdb.GetBytes(8);
MemoryStream ms = new MemoryStream();
TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms,tdesc.CreateEncryptor(key, iv),CryptoStreamMode.Write);
cs.Write(bt, 0, bt.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch(Exception ex)
{
throw ex;
}
}
//解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。
public static string Decrypt(string str, string pass)
{
try
{
byte[] bt = Convert.FromBase64String(str);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(pass, null);
byte[] key = pdb.GetBytes(24);
byte[] iv = pdb.GetBytes(8);
MemoryStream ms = new MemoryStream();
TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms,tdesc.CreateDecryptor(key, iv),CryptoStreamMode.Write);
cs.Write(bt, 0, bt.Length);
cs.FlushFinalBlock();
return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
}
catch(Exception ex)
{
throw ex;
}
}
//使用:
//string str = Encrypt("bbb");
//Console.WriteLine(Decrypt(str, "bbb"));
//加密,使用密码产生加密算法的公钥,并使用TripleDES对密码进行加密。
public static string EncryptWithKey(string pass, string p_key)
{
try
{
byte[] bt = (new System.Text.UnicodeEncoding()).GetBytes(pass);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);
byte[] key = pdb.GetBytes(24);
byte[] iv = pdb.GetBytes(8);
MemoryStream ms = new MemoryStream();
TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms,tdesc.CreateEncryptor(key, iv),CryptoStreamMode.Write);
cs.Write(bt, 0, bt.Length);
cs.FlushFinalBlock();
return Convert.ToBase64String(ms.ToArray());
}
catch(Exception ex)
{
throw ex;
}
}
//解密,使用密码产生加密算法的公钥,并使用TripleDES对加密数据进行解密。
public static string DecryptWithKey(string str, string p_key)
{
try
{
byte[] bt = Convert.FromBase64String(str);
PasswordDeriveBytes pdb = new PasswordDeriveBytes(p_key, null);
byte[] key = pdb.GetBytes(24);
byte[] iv = pdb.GetBytes(8);
MemoryStream ms = new MemoryStream();
TripleDESCryptoServiceProvider tdesc = new TripleDESCryptoServiceProvider();
CryptoStream cs = new CryptoStream(ms,tdesc.CreateDecryptor(key, iv),CryptoStreamMode.Write);
cs.Write(bt, 0, bt.Length);
cs.FlushFinalBlock();
return (new System.Text.UnicodeEncoding()).GetString(ms.ToArray());
}
catch(Exception ex)
{
throw ex;
}
}
}
#endregion
cnming
2004-12-21
打赏
举报
回复
原理是按位异或、移位等等组合的复杂算法,在C#中,有System.Security.Cryptography的名称空间,里头支持DES算法,所以不用你写了
cipher加密套件(openssl)
这些
算法
包括:认证
算法
、密钥交换
算法
、对称
算法
和摘要
算法
等。 在握手初始化的时候,双方都会导入各自所认可的多种加密套件。在握手阶段,由服务端选择其中的一种加密套件。 OpenSSL的ciphers命令可以列出所有的...
des
加解密
要和别的系统通讯,那边是c#和java。 两个版本的加密解密都一致。 可我的php就是找不到一致的...
求教
达人。。。...//C# 版
DES
加解密
算法
using System; using System.Data; using System.Configuration; using Sy
Js:Crypto与PHP:openssl AES加密解密
crypto 是一个纯javascript写的加密
算法
类库 ,可以非常方便地在 javascript 进行 MD5、SHA1、SHA2、SHA3、RIPEMD-160 哈希散列,进行 AES、
DES
、Rabbit、RC4、Triple
DES
加解密。 因为需求是加密可逆,具有一定的...
tar 用 openssl 加密 使用
为什么80%的码农都做不了架构师?... 具体哪种
算法
好
求教
还有就是openssl 具体
算法
以后再研究研究 这个
des
3 比较简短 就用它了 转载于:https://my.oschina.net/vimer/blog/140246
Java 安全编程,你的代码真安全吗?——别等出事才想起“安全这回事”
加密
算法
、框架支持、漏洞防护以及数字签名背后的信任机制。不是说给你吓唬,而是希望你别在“系统崩了”才开始查 CVE。你也许可以写出优雅架构、秒杀业务逻辑,但一旦安全出问题,一切都白搭。加密、签名、证书、防...
C#
111,119
社区成员
642,554
社区内容
发帖
与我相关
我的任务
C#
.NET技术 C#
复制链接
扫一扫
分享
社区描述
.NET技术 C#
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
让您成为最强悍的C#开发者
试试用AI创作助手写篇文章吧
+ 用AI写文章