广

Java编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    java加密枝术深入理解

    2018-11-02 13:12:10 次阅读 稿源:互联网
    零七广告
    ★ 编程思路
    java.security包中的MessageDigest类提供了计算消息摘要的方法, 首先生成对象,执行其update( )方法可以将原始数据传递给该对象,然后执行其digest( )方法即可得到消息摘要。具体步骤如下:
    (1)生成MessageDigest对象
    MessageDigest m=MessageDigest.getInstance("MD5");
    分析:和2.2.1小节的KeyGenerator类一样。MessageDigest类也是一个工厂类,其构造器是受保护的,不允许
    直接使用new MessageDigist( )来创建对象,而必须通过其静态方法getInstance( )生成MessageDigest对象。
    其中传入的参数指定计算消息摘要所使用的算法,常用的有"MD5","SHA"等。若对MD5算法的细节感兴趣可参考
    http://www.gztarena.com/rfc1321.txt。
    (2)传入需要计算的字符串
    m.update(x.getBytes("UTF8" ));
    分析:x为需要计算的字符串,update传入的参数是字节类型或字节类型数组,对于字符串,需要先使用
    getBytes( )方法生成字符串数组。
    (3)计算消息摘要
    byte s[ ]=m.digest( );
    分析:执行MessageDigest对象的digest( 广州达内java)方法完成计算,计算的结果通过字节类型的数组返回。
    (4)处理计算结果
    必要的话可以使用如下代码将计算结果s转换为字符串。
    代码如下:

    String result="";
    for (int i=0; i
    result+=Integer.toHexString((0x000000ff & s) | 0xffffff00)。substring(6);
    }

    ★代码与分析
    完整程序如下:
    代码如下:

    import java.security.*;
    public class DigestPass{
    public static void main(String args[ ]) throws Exception{
    String x=args[0];
    MessageDigest m=MessageDigest.getInstance("MD5");
    m.update(x.getBytes("UTF8"));
    byte s[ ]=m.digest( );
    String result="";
    for (int i=0; i
    result+=Integer.toHexString((0x000000ff & s) | 0xffffff00)。substring(6);
    }
    System.out.println(result);
    }
    }

    ★运行程序
    输入java DigestCalc abc来运行程序,其中命令行参数abc是原始数据,屏幕输出计算后的消息摘要:
    900150983cd24fb0d6963f7d28e17f72。

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告