zoukankan      html  css  js  c++  java
  • 利用DES,C#加密,Java解密代码

      //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 = "JM@XBCRM";
    //        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();
    //        }
        }

     原创文章如转载,请注明出处

  • 相关阅读:
    js中的数组
    range关键字,map,sync.Map,list
    数组,切片
    类型转换,指针,变量的生命周期,常量,模拟枚举,类型别名和类型定义
    字符串类型及其常用操作
    整数类型,浮点类型,复数,bool类型
    声明,初始化,匿名变量,作用域
    C#并发编程——异步编程基础
    继承、多态、接口
    C#基础
  • 原文地址:https://www.cnblogs.com/pongyc/p/7514536.html
Copyright © 2011-2022 走看看