13,100
社区成员
发帖
与我相关
我的任务
分享
using System;
using System.Security.Cryptography;
using System.Text;
namespace GCIT.Common.DEncrypt
{
public class DESEncrypt
{
public DESEncrypt()
{
}
#region ========加密========
/// <summary>
/// 加密
public static string Ecrypt()
{
return Encrypt("global");
}
public static string Encrypt(string Text)
{
return Encrypt(Text, "GCITSOFT");
}
/// <summary>
/// 加密数据
public static string Encrypt(string Text, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray;
inputByteArray = Encoding.Default.GetBytes(Text);
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
StringBuilder ret = new StringBuilder();
foreach (byte b in ms.ToArray())
{
ret.AppendFormat("{0:X2}", b);
}
return ret.ToString();
}
#endregion
}
}
des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
System.IO.MemoryStream ms = new System.IO.MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);
这里的才是载入内存的,当然java的模式和C#的肯定不同,别问我C#里面具体是怎么回事情,微软不开源的des.Key = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
des.IV = ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.
HashPasswordForStoringInConfigFile(sKey, "md5").Substring(0, 8));
网上倒是有一个跟这个C#加密代码差不多了,但是少了一个GetBytes()括号里面的那段代码,就是这个
System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, "md5"),这=这段代码在Java中有同样功能的方法么?其实很简单啊,就是自己写个加密算法,把数据库配置加密了,然后写个接解密算法,在项目启动注册数据信息时去解析加密数据,解析出来的配置直接加载进内存生效就好了