作业帮 > 综合 > 作业

编写一个加密程序,要求:对于字母,将A换成D,将B换成E,…,将Y换成B,将Z换成C;将a换成d,将b换成e,

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/07/03 07:09:37
编写一个加密程序,要求:对于字母,将A换成D,将B换成E,…,将Y换成B,将Z换成C;将a换成d,将b换成e,
需求不清晰呀,A换成D,那D换成什么
以及你加密的对象是什么
再问: 就是你输入A输出D 按字母表递推
再答: 你说的这种也太简单了,太容易破解了 可以列一个数组: var arr =new Array(){"A","B","C"...."Z}; 然后再用Replace 方法进行加密解密就好了 不过我在这里给你推荐MD5加密解密吧(C#) ///MD5加密 public static string MD5Encrypt(string pToEncrypt, string sKey) { try { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); 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(); } catch(Exception) { return ""; } } ///MD5解密 public static string MD5Decrypt(string pToDecrypt, string sKey) { try { DESCryptoServiceProvider des = new DESCryptoServiceProvider(); byte[] inputByteArray = new byte[pToDecrypt.Length / 2]; for(int x = 0; x < pToDecrypt.Length / 2; x++) { int i = (Convert.ToInt32(pToDecrypt.Substring(x * 2, 2), 16)); inputByteArray[x] = (byte)i; } des.Key = ASCIIEncoding.ASCII.GetBytes(sKey); des.IV = ASCIIEncoding.ASCII.GetBytes(sKey); MemoryStream ms = new MemoryStream(); CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray, 0, inputByteArray.Length); cs.FlushFinalBlock(); StringBuilder ret = new StringBuilder(); return System.Text.Encoding.Default.GetString(ms.ToArray()); } catch(Exception) { return ""; } } 希望对你用!!!