字符串加密并缩短到更小的长度
encryption of string and shorten to smaller length
下面的代码给了我这样的字符串“3TA3cATum2VMStTsnJ6DPz5Xx5JH2SoZDdevsd2WJrYapJQjcTOOQ=="
但我想要的是以更短的形式加密 mystring(strr)
(需要转换类似 tiny URL 的东西)
private byte[] key={};
private byte[] IV={18,52,86,120,144,171,205,239};
public string prvtkey="!#$a54?3";
string strr="placeesOFPrj/modulesNamee/mypagesss/ds2.aspx";
key = System.Text.Encoding.UTF8.GetBytes(prvtkey);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.UTF8.GetBytes(strr);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
txt.Text=Convert.ToBase64String(ms.ToArray());
你需要某种数据库来将一些随机的短字符串映射到长字符串,因为某些东西的加密版本不能小于输入。不可能逆转它,因此您需要一些帮助来通过创建映射来逆转它。
如果您不想要随机字符串,那么您当然可以使用长字符串的散列并将其截断为您想要的长度,但没有办法绕过数据库或存储。
下面的代码给了我这样的字符串“3TA3cATum2VMStTsnJ6DPz5Xx5JH2SoZDdevsd2WJrYapJQjcTOOQ=="
但我想要的是以更短的形式加密 mystring(strr)
(需要转换类似 tiny URL 的东西)
private byte[] key={};
private byte[] IV={18,52,86,120,144,171,205,239};
public string prvtkey="!#$a54?3";
string strr="placeesOFPrj/modulesNamee/mypagesss/ds2.aspx";
key = System.Text.Encoding.UTF8.GetBytes(prvtkey);
DESCryptoServiceProvider des = new DESCryptoServiceProvider();
byte[] inputByteArray = Encoding.UTF8.GetBytes(strr);
MemoryStream ms = new MemoryStream();
CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(key, IV), CryptoStreamMode.Write);
cs.Write(inputByteArray, 0, inputByteArray.Length);
cs.FlushFinalBlock();
txt.Text=Convert.ToBase64String(ms.ToArray());
你需要某种数据库来将一些随机的短字符串映射到长字符串,因为某些东西的加密版本不能小于输入。不可能逆转它,因此您需要一些帮助来通过创建映射来逆转它。
如果您不想要随机字符串,那么您当然可以使用长字符串的散列并将其截断为您想要的长度,但没有办法绕过数据库或存储。