专栏首页大数据-数据人生JAVA中的加密算法之双向加密(一)

JAVA中的加密算法之双向加密(一)

JAVA中的加密算法之双向加密(一)

作者:幽鸿 

       加密,是以某种特殊的算法改变原有的信息数据,使得未授权的用户即使获得了已加密的信息,但因不知解密的方法,仍然无法了解信息的内容。大体上分为双向加密单向加密,而双向加密又分为对称加密非对称加密(有些资料将加密直接分为对称加密和非对称加密)。           双向加密大体意思就是明文加密后形成密文,可以通过算法还原成明文。而单向加密只是对信息进行了摘要计算,不能通过算法生成明文,单向加密从严格意思上说不能算是加密的一种,应该算是摘要算法吧。具体区分可以参考: http://security.group.iteye.com/group/wiki/1710-one-way-encryption-algorithm 一、双向加密 (一)、对称加密 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。 需要对加密和解密使用相同密钥的加密算法。由于其速度,对称性加密通常在消息发送方需要加密大量数据时使用。对称性加密也称为密钥加密。 所谓对称,就是采用这种加密方法的双方使用方式用同样的密钥进行加密和解密。密钥是控制加密及解密过程的指令。 算法是一组规则,规定如何进行加密和解密。因此对称式加密本身不是安全的。    常用的对称加密有:DES、IDEA、RC2、RC4、SKIPJACK、RC5、AES算法等 对称加密一般java类中中定义成员

Java代码

    //KeyGenerator 提供对称密钥生成器的功能,支持各种算法   
    private KeyGenerator keygen;   
    //SecretKey 负责保存对称密钥   
    private SecretKey deskey;   
    //Cipher负责完成加密或解密工作   
    private Cipher c;   
    //该字节数组负责保存加密的结果   
    private byte[] cipherByte;  

//KeyGenerator 提供对称密钥生成器的功能,支持各种算法
private KeyGenerator keygen;
//SecretKey 负责保存对称密钥
private SecretKey deskey;
//Cipher负责完成加密或解密工作
private Cipher c;
//该字节数组负责保存加密的结果
private byte[] cipherByte;


在构造函数中初始化

Java代码

    Security.addProvider(new com.sun.crypto.provider.SunJCE());   
    //实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)   
    keygen = KeyGenerator.getInstance("DES");//   
    //生成密钥   
    deskey = keygen.generateKey();   
    //生成Cipher对象,指定其支持的DES算法   
    c = Cipher.getInstance("DES");  

    //实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)
    Security.addProvider(new com.sun.crypto.provider.SunJCE());
    keygen = KeyGenerator.getInstance("DES");//
    //生成密钥
    deskey = keygen.generateKey();
    //生成Cipher对象,指定其支持的DES算法
    c = Cipher.getInstance("DES");
1. DES算法为密码体制中的对称密码体制,又被成为美国数据加密标准,是1972年美国IBM公司研制的对称密码体制加密算法。 明文按64位进行
分组, 密钥长64位,密钥事实上是56位参与DES运算(第8、16、24、32、40、48、56、64位是校验位, 使得每个密钥都有奇数个1)分组后
的明文组和56位的密钥按位替代或交换的方法形成密文组的加密方法。

Java代码

    import java.security.InvalidKeyException;   
    import java.security.NoSuchAlgorithmException;   
    import java.security.Security;   
      
    import javax.crypto.BadPaddingException;   
    import javax.crypto.Cipher;   
    import javax.crypto.IllegalBlockSizeException;   
    import javax.crypto.KeyGenerator;   
    import javax.crypto.NoSuchPaddingException;   
    import javax.crypto.SecretKey;   
      
    public class EncrypDES {   
           
        //KeyGenerator 提供对称密钥生成器的功能,支持各种算法   
        private KeyGenerator keygen;   
        //SecretKey 负责保存对称密钥   
        private SecretKey deskey;   
        //Cipher负责完成加密或解密工作   
        private Cipher c;   
        //该字节数组负责保存加密的结果   
        private byte[] cipherByte;   
           
        public EncrypDES() throws NoSuchAlgorithmException, NoSuchPaddingException{   
            Security.addProvider(new com.sun.crypto.provider.SunJCE());   
            //实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)   
            keygen = KeyGenerator.getInstance("DES");   
            //生成密钥   
            deskey = keygen.generateKey();   
            //生成Cipher对象,指定其支持的DES算法   
            c = Cipher.getInstance("DES");   
        }   
           
        /**  
         * 对字符串加密  
         *   
         * @param str  
         * @return  
         * @throws InvalidKeyException  
         * @throws IllegalBlockSizeException  
         * @throws BadPaddingException  
         */  
        public byte[] Encrytor(String str) throws InvalidKeyException,   
                IllegalBlockSizeException, BadPaddingException {   
            // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式   
            c.init(Cipher.ENCRYPT_MODE, deskey);   
            byte[] src = str.getBytes();   
            // 加密,结果保存进cipherByte   
            cipherByte = c.doFinal(src);   
            return cipherByte;   
        }   
      
        /**  
         * 对字符串解密  
         *   
         * @param buff  
         * @return  
         * @throws InvalidKeyException  
         * @throws IllegalBlockSizeException  
         * @throws BadPaddingException  
         */  
        public byte[] Decryptor(byte[] buff) throws InvalidKeyException,   
                IllegalBlockSizeException, BadPaddingException {   
            // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式   
            c.init(Cipher.DECRYPT_MODE, deskey);   
            cipherByte = c.doFinal(buff);   
            return cipherByte;   
        }   
      
        /**  
         * @param args  
         * @throws NoSuchPaddingException   
         * @throws NoSuchAlgorithmException   
         * @throws BadPaddingException   
         * @throws IllegalBlockSizeException   
         * @throws InvalidKeyException   
         */  
        public static void main(String[] args) throws Exception {   
            EncrypDES de1 = new EncrypDES();   
            String msg ="郭XX-搞笑相声全集";   
            byte[] encontent = de1.Encrytor(msg);   
            byte[] decontent = de1.Decryptor(encontent);   
            System.out.println("明文是:" + msg);   
            System.out.println("加密后:" + new String(encontent));   
            System.out.println("解密后:" + new String(decontent));   
        }   
      
    }  

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
public class EncrypDES {
    //KeyGenerator 提供对称密钥生成器的功能,支持各种算法
    private KeyGenerator keygen;
    //SecretKey 负责保存对称密钥
    private SecretKey deskey;
    //Cipher负责完成加密或解密工作
    private Cipher c;
    //该字节数组负责保存加密的结果
    private byte[] cipherByte;
    public EncrypDES() throws NoSuchAlgorithmException, NoSuchPaddingException{
       Security.addProvider(new com.sun.crypto.provider.SunJCE());
             //实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)
       keygen = KeyGenerator.getInstance("DES");     //生成密钥
       deskey = keygen.generateKey();              //生成Cipher对象,指定其支持的DES算法
       c = Cipher.getInstance("DES");
     }

      /** * 对字符串加密 *  * 
           @param str * 
           @return * 
           @throws InvalidKeyException *
           @throws IllegalBlockSizeException * 
           @throws BadPaddingException
       */
       public byte[] Encrytor(String str) throws InvalidKeyException,
           IllegalBlockSizeException,   BadPaddingException {
        // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式
        c.init(Cipher.ENCRYPT_MODE, deskey);
        byte[] src = str.getBytes();// 加密,结果保存进          
        cipherBytecipherByte = c.doFinal(src);return cipherByte;
   }

    /** * 对字符串解密 *  * 
        @param buff * 
        @return * @throws InvalidKeyException * 
        @throws IllegalBlockSizeException * 
        @throws BadPaddingException */
    public byte[] Decryptor(byte[] buff) throws InvalidKeyException,
         IllegalBlockSizeException, BadPaddingException {
        // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式
       c.init(Cipher.DECRYPT_MODE, deskey);cipherByte = c.doFinal(buff);
       return cipherByte;
    }

    /** * @param args * 
          @throws NoSuchPaddingException  *
          @throws NoSuchAlgorithmException  * 
          @throws BadPaddingException  * 
          @throws IllegalBlockSizeException  * 
          @throws InvalidKeyException  */
    public static void main(String[] args) throws Exception {
          EncrypDES de1 = new EncrypDES();
          String msg ="郭XX-搞笑相声全集";
          byte[] encontent = de1.Encrytor(msg);
          byte[] decontent = de1.Decryptor(encontent);
          System.out.println("明文是:" + msg);
          System.out.println("加密后:" + new String(encontent));
          System.out.println("解密后:" + new String(decontent));
    }}

2. 3DES又称Triple DES,是DES加密算法的一种模式,它使用3条56位的密钥对3DES 数据进行三次加密。数据加密标准(DES)是美国的一种由来已久的加密标准,它使用对称密钥加密法,并于1981年被ANSI组织规范为ANSI X.3.92。DES使用56位密钥和密码块的方法,而在密码块的方法中,文本被分成64位大小的文本块然后再进行加密。比起最初的DES,3DES更为安全。    3DES(即Triple DES)是DES向AES过渡的加密算法(1999年,NIST将3-DES指定为过渡的加密标准),是DES的一个更安全的变形。它以DES为基本模块,通过组合分组方法设计出分组加密算法,其具体实现如下: 设Ek()和Dk()代表DES算法的加密和解密过程,K代表DES算法使用的密钥,P代表明文,C代表密文, 这样,    3DES加密过程为:C=Ek3(Dk2(Ek1(P))) 3DES解密过程为:P=Dk1((EK2(Dk3(C)))

Java代码

    import java.security.InvalidKeyException;   
    import java.security.NoSuchAlgorithmException;   
    import java.security.Security;   
      
    import javax.crypto.BadPaddingException;   
    import javax.crypto.Cipher;   
    import javax.crypto.IllegalBlockSizeException;   
    import javax.crypto.KeyGenerator;   
    import javax.crypto.NoSuchPaddingException;   
    import javax.crypto.SecretKey;   
      
    public class EncrypDES3 {   
      
        // KeyGenerator 提供对称密钥生成器的功能,支持各种算法   
        private KeyGenerator keygen;   
        // SecretKey 负责保存对称密钥   
        private SecretKey deskey;   
        // Cipher负责完成加密或解密工作   
        private Cipher c;   
        // 该字节数组负责保存加密的结果   
        private byte[] cipherByte;   
      
        public EncrypDES3() throws NoSuchAlgorithmException, NoSuchPaddingException {   
            Security.addProvider(new com.sun.crypto.provider.SunJCE());   
            // 实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)   
            keygen = KeyGenerator.getInstance("DESede");   
            // 生成密钥   
            deskey = keygen.generateKey();   
            // 生成Cipher对象,指定其支持的DES算法   
            c = Cipher.getInstance("DESede");   
        }   
      
        /**  
         * 对字符串加密  
         *   
         * @param str  
         * @return  
         * @throws InvalidKeyException  
         * @throws IllegalBlockSizeException  
         * @throws BadPaddingException  
         */  
        public byte[] Encrytor(String str) throws InvalidKeyException,   
                IllegalBlockSizeException, BadPaddingException {   
            // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式   
            c.init(Cipher.ENCRYPT_MODE, deskey);   
            byte[] src = str.getBytes();   
            // 加密,结果保存进cipherByte   
            cipherByte = c.doFinal(src);   
            return cipherByte;   
        }   
      
        /**  
         * 对字符串解密  
         *   
         * @param buff  
         * @return  
         * @throws InvalidKeyException  
         * @throws IllegalBlockSizeException  
         * @throws BadPaddingException  
         */  
        public byte[] Decryptor(byte[] buff) throws InvalidKeyException,   
                IllegalBlockSizeException, BadPaddingException {   
            // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式   
            c.init(Cipher.DECRYPT_MODE, deskey);   
            cipherByte = c.doFinal(buff);   
            return cipherByte;   
        }   
      
        /**  
         * @param args  
         * @throws NoSuchPaddingException   
         * @throws NoSuchAlgorithmException   
         * @throws BadPaddingException   
         * @throws IllegalBlockSizeException   
         * @throws InvalidKeyException   
         */  
        public static void main(String[] args) throws Exception {   
            EncrypDES3 des = new EncrypDES3();   
            String msg ="郭XX-搞笑相声全集";   
            byte[] encontent = des.Encrytor(msg);   
            byte[] decontent = des.Decryptor(encontent);   
            System.out.println("明文是:" + msg);   
            System.out.println("加密后:" + new String(encontent));   
            System.out.println("解密后:" + new String(decontent));   
      
        }   
      
    }  

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
public class EncrypDES3 {
     // KeyGenerator 提供对称密钥生成器的功能,支持各种算法
     private KeyGenerator keygen;// SecretKey 负责保存对称密钥
     private SecretKey deskey;// Cipher负责完成加密或解密工作
     private Cipher c;// 该字节数组负责保存加密的结果
     private byte[] cipherByte;

     public EncrypDES3() throws NoSuchAlgorithmException, NoSuchPaddingException {
            Security.addProvider(new com.sun.crypto.provider.SunJCE());
                  // 实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)
            keygen = KeyGenerator.getInstance("DESede");// 生成密钥
            deskey = keygen.generateKey();// 生成Cipher对象,指定其支持的DES算法c =       
            Cipher.getInstance("DESede");
      }

      /** * 对字符串加密 * 
          * @param str * @return * 
            @throws InvalidKeyException * @throws IllegalBlockSizeException * 
            @throws BadPaddingException */
      public byte[] Encrytor(String str) throws InvalidKeyException,
            IllegalBlockSizeException, BadPaddingException {
        // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式
        c.init(Cipher.ENCRYPT_MODE, deskey);byte[] src = str.getBytes();
        // 加密,结果保存进cipherByte
        cipherByte = c.doFinal(src);
        return cipherByte;
       }

       /** * 对字符串解密 * 
           * @param buff * @return * @throws InvalidKeyException 
           * @throws IllegalBlockSizeException * @throws BadPaddingException */
       public byte[] Decryptor(byte[] buff) throws InvalidKeyException,
           IllegalBlockSizeException, BadPaddingException {
           // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式
           c.init(Cipher.DECRYPT_MODE, deskey);
           cipherByte = c.doFinal(buff);
           return cipherByte;
       }

       /** * @param args * @throws NoSuchPaddingException  
           * @throws NoSuchAlgorithmException 
           * @throws BadPaddingException  
           * @throws IllegalBlockSizeException  
           * @throws InvalidKeyException  */
       public static void main(String[] args) throws Exception {
           EncrypDES3 des = new EncrypDES3();
           String msg ="郭XX-搞笑相声全集";
           byte[] encontent = des.Encrytor(msg);
           byte[] decontent = des.Decryptor(encontent);
           System.out.println("明文是:" + msg);
           System.out.println("加密后:" + new String(encontent));
           System.out.println("解密后:" + new String(decontent));
       }
   }

3. AES密码学中的高级加密标准(Advanced Encryption Standard,AES),又称高级加密标准Rijndael加密法,是美国联邦政府采 用的一种区块加密标准。这个标准用来替代原先的DES,已经被多方分析且广为全世界所使用。经过五年的甄选流程,高级加密标准由美 国国家标准与技术研究院(NIST)于2001年11月26日发布于FIPS PUB 197,并在2002年5月26日成为有效的标准。2006年,高级加密标 准已然成为对称密钥加密中最流行的算法之一。   该算法为比利时密码学家Joan Daemen和Vincent Rijmen所设计,结合两位作者的 名字,以Rijndael之命名之,投稿高级加密标准的甄选流程。(Rijdael的发音近于 "Rhinedoll"。)

Java代码

    import java.security.InvalidKeyException;   
    import java.security.NoSuchAlgorithmException;   
    import java.security.Security;   
      
    import javax.crypto.BadPaddingException;   
    import javax.crypto.Cipher;   
    import javax.crypto.IllegalBlockSizeException;   
    import javax.crypto.KeyGenerator;   
    import javax.crypto.NoSuchPaddingException;   
    import javax.crypto.SecretKey;   
      
    public class EncrypAES {   
           
        //KeyGenerator 提供对称密钥生成器的功能,支持各种算法   
        private KeyGenerator keygen;   
        //SecretKey 负责保存对称密钥   
        private SecretKey deskey;   
        //Cipher负责完成加密或解密工作   
        private Cipher c;   
        //该字节数组负责保存加密的结果   
        private byte[] cipherByte;   
           
        public EncrypAES() throws NoSuchAlgorithmException, NoSuchPaddingException{   
            Security.addProvider(new com.sun.crypto.provider.SunJCE());   
            //实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)   
            keygen = KeyGenerator.getInstance("AES");   
            //生成密钥   
            deskey = keygen.generateKey();   
            //生成Cipher对象,指定其支持的DES算法   
            c = Cipher.getInstance("AES");   
        }   
           
        /**  
         * 对字符串加密  
         *   
         * @param str  
         * @return  
         * @throws InvalidKeyException  
         * @throws IllegalBlockSizeException  
         * @throws BadPaddingException  
         */  
        public byte[] Encrytor(String str) throws InvalidKeyException,   
                IllegalBlockSizeException, BadPaddingException {   
            // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式   
            c.init(Cipher.ENCRYPT_MODE, deskey);   
            byte[] src = str.getBytes();   
            // 加密,结果保存进cipherByte   
            cipherByte = c.doFinal(src);   
            return cipherByte;   
        }   
      
        /**  
         * 对字符串解密  
         *   
         * @param buff  
         * @return  
         * @throws InvalidKeyException  
         * @throws IllegalBlockSizeException  
         * @throws BadPaddingException  
         */  
        public byte[] Decryptor(byte[] buff) throws InvalidKeyException,   
                IllegalBlockSizeException, BadPaddingException {   
            // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式   
            c.init(Cipher.DECRYPT_MODE, deskey);   
            cipherByte = c.doFinal(buff);   
            return cipherByte;   
        }   
      
        /**  
         * @param args  
         * @throws NoSuchPaddingException   
         * @throws NoSuchAlgorithmException   
         * @throws BadPaddingException   
         * @throws IllegalBlockSizeException   
         * @throws InvalidKeyException   
         */  
        public static void main(String[] args) throws Exception {   
            EncrypAES de1 = new EncrypAES();   
            String msg ="郭XX-搞笑相声全集";   
            byte[] encontent = de1.Encrytor(msg);   
            byte[] decontent = de1.Decryptor(encontent);   
            System.out.println("明文是:" + msg);   
            System.out.println("加密后:" + new String(encontent));   
            System.out.println("解密后:" + new String(decontent));   
        }   
      
    }  

import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.Security;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
public class EncrypAES {
    //KeyGenerator 提供对称密钥生成器的功能,支持各种算法
    private KeyGenerator keygen;
    //SecretKey 负责保存对称密钥
    private SecretKey deskey;
    //Cipher负责完成加密或解密工作
    private Cipher c;
    //该字节数组负责保存加密的结果
    private byte[] cipherByte;
    
    public EncrypAES() throws NoSuchAlgorithmException, NoSuchPaddingException{
         Security.addProvider(new com.sun.crypto.provider.SunJCE());//实例化支持DES算法的密钥生成器(算法名称命名需按规定,否则抛出异常)
         keygen = KeyGenerator.getInstance("AES");//生成密钥
         deskey = keygen.generateKey();//生成Cipher对象,指定其支持的DES算法
         c = Cipher.getInstance("AES");
     }

     /** * 对字符串加密 *  * 
         @param str * 
         @return * 
         @throws InvalidKeyException * 
         @throws IllegalBlockSizeException * 
         @throws BadPaddingException */
     public byte[] Encrytor(String str) throws InvalidKeyException,IllegalBlockSizeException, BadPaddingException {
         // 根据密钥,对Cipher对象进行初始化,ENCRYPT_MODE表示加密模式
         c.init(Cipher.ENCRYPT_MODE, deskey);
         byte[] src = str.getBytes();
         // 加密,结果保存进
         cipherBytecipherByte = c.doFinal(src);
         return cipherByte;
      }

      /** * 对字符串解密 *  * 
          @param buff * @return * 
          @throws InvalidKeyException * 
          @throws IllegalBlockSizeException * 
          @throws BadPaddingException */
      public byte[] Decryptor(byte[] buff) throws InvalidKeyException,IllegalBlockSizeException, BadPaddingException {
          // 根据密钥,对Cipher对象进行初始化,DECRYPT_MODE表示加密模式
          c.init(Cipher.DECRYPT_MODE, deskey);
          cipherByte = c.doFinal(buff);return cipherByte;
       }

      /** * 
          @param args * 
          @throws NoSuchPaddingException  * 
          @throws NoSuchAlgorithmException  * 
          @throws BadPaddingException  * 
          @throws IllegalBlockSizeException  * 
          @throws InvalidKeyException  */
      public static void main(String[] args) throws Exception {
          EncrypAES de1 = new EncrypAES();
          String msg ="郭XX-搞笑相声全集";
          byte[] encontent = de1.Encrytor(msg);
          byte[] decontent = de1.Decryptor(encontent);
          System.out.println("明文是:" + msg);
          System.out.println("加密后:" + new String(encontent));
          System.out.println("解密后:" + new String(decontent));
    }}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • JAVA中的加密算法之双向加密(二)

    本节主要讲述Java双向加密算法中的非对称加密算法实现。 (二)、非对称加密 1976年,美国学者Dime和Henman为解决信息公开传送和密钥管理问题,提...

    幽鸿
  • Sqoop-1.4.4工具import和export使用详解

    Sqoop可以在HDFS/Hive和关系型数据库之间进行数据的导入导出,其中主要使用了import和export这两个工具。这两个工具非常强大,提供了很多选项帮...

    幽鸿
  • MySql慢查询检测与优化

    眼下用的最多的关系型数据库数MySql莫属了,之前也用过其它各种数据库。最近使用MySql一段时间了,突然好奇心下,想看看MySql到底性能如何?刚好最近手上有...

    幽鸿
  • 聊一聊密码学

    在古代,战争双方的将军,都会通过传信兵,来调遣各支队伍。假如,A国派出的传信兵,被B国俘虏了,那A国的作战计划将会被B国获取,这样,B做针对性战略,将会直接导致...

    搬砖俱乐部
  • 加密模式CBC、ECB、CTR、OCF和CFB

    在开发中如果有接触到加密,就一定遇到过MD5、DES、Triple DES、AES、RSA等加密方式(这些都叫加密算法);在深入了解加密领域的知识...

    java乐园
  • lucky 勒索病毒分析与文件解密

    近日,互联网上爆发了一种名为 lucky 的勒索病毒,该病毒会将指定文件加密并修改后缀名为 .lucky。

    Seebug漏洞平台
  • 为什么HTTPS是安全的,一张图告诉你

    在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。

    公众号 IT老哥
  • 为什么 HTTPS 比 HTTP 更安全?

    在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。比较安全的方法是将通信内容加密在发送给对方...

    zhisheng
  • 为什么 https 比 http 更安全?

    在HTTPS出现之前,所有请求都是以明文方式送出的,那么如果有人在传输途中偷听或者抓包的话,你的所有通信内容都会泄漏。比较安全的方法是将通信内容加密在发送给对方...

    杰哥的IT之旅
  • JS逆向 | 无限Debugger之淘大象

    今天继续和大家研究JS逆向,不少小伙伴在JS逆向的时候遇到过无限debugger的反爬,今天就拿一个网站练练手感受下无限debugger。

    咸鱼学Python

扫码关注云+社区

领取腾讯云代金券