能否将下面的C#的加密解密方法转换成java的加密解密方法 /// <summary> 
        /// 加密字符串 静态方法
        /// </summary> 
        /// <param name="inputStr">输入明文字符串</param> 
        /// <param name="keyStr">密钥,可以为""</param> 
        /// <returns>输出加密后字符串</returns>
        //************************************************************************
        public static string EncryptString(string inputStr, string keyStr)
        {
            try
            {
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();                if (keyStr == "") keyStr = key; //此密钥默认为:1234567890                byte[] inputByteArray = Encoding.Default.GetBytes(inputStr);//此与解密不同点1
                byte[] keyByteArray = Encoding.Default.GetBytes(keyStr);                SHA1 ha = new SHA1Managed();
                byte[] hb = ha.ComputeHash(keyByteArray);                skey = new byte[8];
                siv = new byte[8];                for (int i = 0; i < 8; i++) skey[i] = hb[i];
                for (int i = 8; i < 16; i++) siv[i - 8] = hb[i];                des.Key = skey; // 取得机密密钥
                des.IV = siv;   // 取得初始化向量(作用-相当于随机'盐'值)
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateEncryptor(), CryptoStreamMode.Write);//此与解密不同点2                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();                StringBuilder ret = new StringBuilder();
                foreach (byte b in ms.ToArray())
                {
                    ret.AppendFormat("{0:x2}", b);
                }                cs.Close();
                ms.Close();                return ret.ToString();
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }        //************************************************************************
        /// <summary> 
        /// 解密字符串 静态方法
        /// </summary> 
        /// <param name="inputStr">要解密的字符串</param> 
        /// <param name="keyStr">密钥,可以为""</param> 
        /// <returns>解密后的结果</returns>
        //************************************************************************
        public static string DecryptString(string inputStr, string keyStr)
        {
            try
            {
                DESCryptoServiceProvider des = new DESCryptoServiceProvider();                if (keyStr == "") keyStr = key;//此密钥默认为:1234567890                byte[] inputByteArray = new byte[inputStr.Length / 2];//此与加密不同点1                for (int x = 0; x < inputStr.Length / 2; x++) //此与加密不同点1
                {
                    int i = (Convert.ToInt32(inputStr.Substring(x * 2, 2), 16));
                    inputByteArray[x] = (byte)i;
                }                byte[] keyByteArray = Encoding.Default.GetBytes(keyStr);                SHA1 ha = new SHA1Managed();                byte[] hb = ha.ComputeHash(keyByteArray);                skey = new byte[8];
                siv = new byte[8];                for (int i = 0; i < 8; i++) skey[i] = hb[i];
                for (int i = 8; i < 16; i++) siv[i - 8] = hb[i];                des.Key = skey; // 取得机密密钥
                des.IV = siv;   // 取得初始化向量(作用-相当于随机'盐'值)
                MemoryStream ms = new MemoryStream();
                CryptoStream cs = new CryptoStream(ms, des.CreateDecryptor(), CryptoStreamMode.Write);//此与加密不同点2
                cs.Write(inputByteArray, 0, inputByteArray.Length);
                cs.FlushFinalBlock();                StringBuilder ret = new StringBuilder();
                return System.Text.Encoding.Default.GetString(ms.ToArray());
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }