.NET 与 Java 互通的 DES 加密方式

C#.NET 1.1 的默认 DES 算法与 Java 的 JCE 的 DES 加密算法不同,需要改为 ECB 模式。

代码如下:


Bruce Lee 
17 : 56 : 55
///   <summary>
        
///  DES + Base64 加密
        
///   </summary>
        
///   <param name="strText"> 密码明文字符串 </param></param>
        
///   <param name="strKey"> 密钥明文字符串 </param>
        
///   <returns> 已加密字符串 </returns>
         public   static   string  DesBase64Encrypt( string  strText,  string  strKey)
        {
            
byte [] byKey  =   new   byte [ 8 ]{ 56 , 50 , 55 , 56 , 56 , 55 , 49 , 49 }; 
            
byte [] byIV  =   new   byte [ 8 ] { 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 };
 
            DESCryptoServiceProvider cryptoProvider 
=   new  DESCryptoServiceProvider(); 
            
int  i  =  cryptoProvider.KeySize;
            cryptoProvider.Mode 
=  System.Security.Cryptography.CipherMode.ECB;
            MemoryStream ms 
=   new  MemoryStream(); 
            CryptoStream cst 
=   new  CryptoStream(ms,cryptoProvider.CreateEncryptor(byKey,byIV),CryptoStreamMode.Write); 
    
            StreamWriter sw 
=   new  StreamWriter(cst); 
            sw.Write(strText);
            sw.Flush(); 
            cst.FlushFinalBlock(); 
            sw.Flush(); 
            
return  Convert.ToBase64String(ms.GetBuffer(), 0 ,( int )ms.Length);  

实践应用于某电信一个单点登录系统雏形。
 




你可能感兴趣的:(java)