21,893
社区成员




public static string DESEnCode(string pToEncrypt,string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.GetEncoding("UTF-8").GetBytes(pToEncrypt);
des.Key = ASCIIEncoding.ASCII.GetBytes(sKey);
des.IV = ASCIIEncoding.ASCII.GetBytes(sKey);
MemoryStream ms = new 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);
}
ret.ToString();
return ret.ToString();
}
public static String DESEncrypt(String key,String message){
String encrypt = "";
try {
Cipher cipher = Cipher.getInstance("DES/CBC/PKCS5Padding");
DESKeySpec desKeySpec = new DESKeySpec(key.getBytes("UTF-8"));
SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");
SecretKey secretKey = keyFactory.generateSecret(desKeySpec);
IvParameterSpec iv = new IvParameterSpec(key.getBytes("UTF-8"));
cipher.init(Cipher.ENCRYPT_MODE, secretKey, iv);
byte[] b = cipher.doFinal(message.getBytes("UTF-8"));
StringBuffer hexString = new StringBuffer();
for (int i = 0; i < b.length; i++) {
String plainText = Integer.toHexString(0xff & b[i]);
if (plainText.length() < 2)
plainText = "0" + plainText;
hexString.append(plainText);
}
encrypt = hexString.toString();
encrypt = encrypt.toUpperCase();
} catch (Exception e) {
e.printStackTrace();
}
return encrypt;
}
//DES加密算法,兼容C#/JAVA
private function encryPwd($encryString, $encryKey)
{
$keyLen = strlen($encryKey);
if (null == $encryKey || $keyLen < 8) {
$encryKey = str_pad($encryKey, 8, '0', STR_PAD_RIGHT);
}
if ($keyLen > 8) {
$encryKey = substr($encryKey, 0, 8);
}
$key = mb_convert_encoding($encryKey, 'UTF-8');
$message = mb_convert_encoding($encryString, 'UTF-8');
$encry = openssl_encrypt($message, 'DES-CBC', $key, OPENSSL_RAW_DATA, $key);
return bin2hex($encry);
}
public function encryptDesEcbPKCS5($input, $key)
{
$size = mcrypt_get_block_size('des', 'ecb');
$input = $this->pkcs5_pad($input, $size);
$td = mcrypt_module_open('des', '', 'ecb', '');
//获取密钥的最大长度
$ks = mcrypt_enc_get_key_size($td);
$key = substr($key, 0, $ks);
//加密向量值
$iv = mcrypt_create_iv (mcrypt_enc_get_iv_size($td), MCRYPT_RAND);
//$iv =0;
$tmp = mcrypt_generic_init($td, $key, $iv);
$data = mcrypt_generic ($td, $input);
mcrypt_generic_deinit($td);
mcrypt_module_close($td);
return strtoupper(bin2hex($data));
}