標籤:ext select null bytes ast esc stringbu bst cep
//C#加密 /// <summary> /// 進行DES加密。 /// </summary> /// <param name="pToEncrypt">要加密的字串。</param> /// <param name="sKey">密鑰,且必須為8位。</param> /// <returns>以Base64格式返回的加密字串。</returns> public static string Encode(string str) { string keyXml = CommonMethor.GetEncrptKeyByRpt(Contant.contantUrl+"api/sys/getEncrptKey"); XmlDocument doc = new XmlDocument(); doc.LoadXml(keyXml); XmlNode root = doc.SelectSingleNode("string");//當節點Workflow帶有屬性是,使用SelectSingleNode無法讀取 string key = root.LastChild.InnerText; DESCryptoServiceProvider provider = new DESCryptoServiceProvider(); provider.Key = Encoding.ASCII.GetBytes(key.Substring(0, 8)); provider.IV = Encoding.ASCII.GetBytes(key.Substring(0, 8)); byte[] bytes = Encoding.GetEncoding("UTF-8").GetBytes(str); MemoryStream stream = new MemoryStream(); CryptoStream stream2 = new CryptoStream(stream, provider.CreateEncryptor(), CryptoStreamMode.Write); stream2.Write(bytes, 0, bytes.Length); stream2.FlushFinalBlock(); StringBuilder builder = new StringBuilder(); foreach (byte num in stream.ToArray()) { builder.AppendFormat("{0:X2}", num); } stream.Close(); return builder.ToString(); } java解密public static void main(String[] args) {// String decryptToken = null;// String key = "[email protected]";// String token = "C36B90D474184911EE21D4330730847E50F34F57DB92D38AA083AA66064F658C";// try// {// decryptToken = ClientUtils.decrypt(token,key);// decryptToken = java.net.URLDecoder.decode(decryptToken, "utf-8");// System.out.println("加密串為[" + token + "],解密後為[" + decryptToken + "]");// } catch (Exception e)// {// e.printStackTrace();// } }
利用DES,C#加密,Java解密代碼