SHA-1&MD5

 

import  java.security. * ;

public   class  Security {
    
    
/**
     * 字符串加密方法。传入一个字符串,返回经过SHA-1加密后的一个字符串
     * 
@param  strInput
     * 
@return
     
*/
    
public   static  String encryptSHA(String strInput) {
        String strOutput 
=   new  String( "" );
        
try  {
            MessageDigest md 
=  MessageDigest.getInstance( " SHA-1 " );
            md.update(strInput.getBytes());
            
byte  b[]  =  md.digest();
            
for ( int  i = 0 ;i < b.length;i ++ ) {
                
char [] digit  =  {  ' 0 ' , ' 1 ' , ' 2 ' , ' 3 ' , ' 4 ' , ' 5 ' , ' 6 ' , ' 7 ' , ' 8 ' , ' 9 ' , ' A ' , ' B ' , ' C ' , ' D ' , ' E ' , ' F '  };
                
char  [] ob  =   new   char [ 2 ];
                ob[
0 =  digit[(b[i]  >>>   4 &   0X0F ];
                ob[
1 =  digit[b[i]  &   0X0F ];
                strOutput 
+=   new  String(ob);
            }
        }
        
catch (NoSuchAlgorithmException nsae) {
            ex.printStackTrace();
        }        
        
        
return  strOutput;
    }
    
    
/**
     * 字符串加密方法。传入一个字符串,返回经过MD5加密后的一个字符串
     * 
@param  strInput
     * 
@return
     
*/
    
public   static  String encryptMD5(String strInput) {
        StringBuffer buf=null;       
        try {
            MessageDigest md = MessageDigest.getInstance("MD5");
            md.update(strInput.getBytes());
            byte b[] = md.digest();   
             buf = new StringBuffer(b.length * 2);
            for(int i=0;i<b.length;i++) {
                if (((int)b[i] & 0xff) < 0x10) { // & 0xff转换无符号整型
                    buf.append("0");
                }
               // buf.append(Long.toString((int) b[i] & 0xff, 16));//转换16进制,下方法同
               buf.append(Long.toHexString((int)b[i] & 0xff));
            }
        }catch(NoSuchAlgorithmException ex) {
             ex.printStackTrace();
        }   
       return buf.toString();
    }
    
    
public   static   void  main(String args[]) {
        String test 
=   " Derek.G " ;
        System.out.print(encryptSHA(test));
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值