在.Net和Java中的MD5加密开发的一致性

1、C#.Net版
ContractedBlock.gif ExpandedBlockStart.gif Code
ExpandedBlockStart.gifContractedBlock.gif/**//// <summary>
        
/// MD5加密
        
/// </summary>
        
/// <param name="s">字符串</param>
        
/// <param name="encoding">字符集编码</param>
        
/// <returns></returns>

        public static String MD5(String s, Encoding encoding)
ExpandedBlockStart.gifContractedBlock.gif        
{
            MD5CryptoServiceProvider md5 
= new MD5CryptoServiceProvider();
            
byte[] bytValue = encoding.GetBytes(s);
            
byte[] bytHash = md5.ComputeHash(bytValue);
            md5.Clear();

            StringBuilder result 
= new StringBuilder();
            
for (int i = 0; i < bytHash.Length; i++)
ExpandedSubBlockStart.gifContractedSubBlock.gif            
{
                result.Append(bytHash[i].ToString(
"x").PadLeft(2'0'));
            }

            
return result.ToString();
        }

2、Java版
ContractedBlock.gif ExpandedBlockStart.gif Code
ExpandedBlockStart.gifContractedBlock.gif/** *//**
     * MD5加密
     * 
@param s    字符串
     * 
@param charsetName 字符集名称
     * 
@return
     
*/

    
public final static String MD5(String s, String charsetName)
ExpandedBlockStart.gifContractedBlock.gif    
{
ExpandedSubBlockStart.gifContractedSubBlock.gif        
char hexDigits[] = '0''1''2''3''4''5''6''7''8''9',
                
'a''b''c''d''e''f' }
;
ExpandedSubBlockStart.gifContractedSubBlock.gif        
try {
            
byte[] strTemp = s.getBytes(charsetName);
            MessageDigest mdTemp 
= MessageDigest.getInstance("MD5");
            mdTemp.update(strTemp);
            
byte[] md = mdTemp.digest();
            
int j = md.length;
            
char str[] = new char[j * 2];
            
int k = 0;
ExpandedSubBlockStart.gifContractedSubBlock.gif            
for (int i = 0; i < j; i++{
                
byte byte0 = md[i];
                str[k
++= hexDigits[byte0 >>> 4 & 0xf];
                str[k
++= hexDigits[byte0 & 0xf];
            }

            
return new String(str);
ExpandedSubBlockStart.gifContractedSubBlock.gif        }
 catch (Exception e) {
            
return null;
        }

    }
 

转载于:https://www.cnblogs.com/heroking2000/archive/2009/10/13/1582808.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值