为8字节的数用DES加密后得到的密文是16字节的数,这个结果是对的吗?
yuexp 2009-01-14 04:42:23 我用DES加密一个8字节的数,得到的密文是一个16字节的数,不知道这个结果对不对?代码如下:要加密的数、密钥是自己输入的,且密钥必须是8字节
调用:
string str = tbming.Text;
string key = tbmiyue.Text;
if ( tbmiyue.Text.Length > 8)
{
MessageBox.Show("输入不能超过8字节,请重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
string res = jiamijiemi.jiami.Encrypt(str,key);
tbmi.Text = res;
加密:
using System;
using System.Collections.Generic;
using System.Text;
using System.Security.Cryptography;
using System.IO;
namespace coding.jiamijiemi
{
class jiami
{
public static string Encrypt(string pToEncrypt, string sKey)
{
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
des.Padding = PaddingMode.Zeros;
byte[] inputByteArray = Encoding.Default.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();
}
}
}