⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mydigest.java

📁 对JAVA安全机制的研究---消息摘要加密方法
💻 JAVA
字号:
import java.security.*;
public class myDigest 
{
  public static void main(String[] args)
  {
    myDigest my=new myDigest();
    my.testDigest();
  }
  public void testDigest()
  {
   try 
    {String myinfo="我的测试信息";

      java.security.MessageDigest alga=java.security.MessageDigest.getInstance("SHA-1");
      alga.update(myinfo.getBytes());
      byte[] digesta=alga.digest();
      System.out.println("本信息摘要是:"+byte2hex(digesta));
      //通过某种方式传给其他人你的信息(myinfo)和摘要(digesta) 对方可以判断是否更改或传输正常
      java.security.MessageDigest algb=java.security.MessageDigest.getInstance("SHA-1");
      algb.update(myinfo.getBytes());
      if (algb.isEqual(digesta,algb.digest())) 
         {
          System.out.println("信息检查正常");
         }
       else
         {
          System.out.println("摘要不相同");
         }
    }
   catch (java.security.NoSuchAlgorithmException ex) 
    {
      System.out.println("非法摘要算法");
    }
  }
 
  public String byte2hex(byte[] b) //二行制转字符串
    {
     String hs="";
     String stmp="";
     for (int n=0;n<b.length;n++)
      {
       stmp=(java.lang.Integer.toHexString(b[n] & 0XFF));
       if (stmp.length()==1) 
          hs=hs+"0"+stmp;
       else 
          hs=hs+stmp;
       if (n<b.length-1)  hs=hs+":";
      }
     return hs.toUpperCase();
    }
}



/*info的长度变化,但是消息摘要的2进制位数还是20位? 消息摘要是由什么生成的?
alga和algb在同一个方法体中,是不是不同的2台电脑都存在?你的信息(myinfo)和摘要(digesta)是怎么传给对方的?*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -