面试官:讲一下CC防御你常用的加密算法-墨者安全-墨者盾
DDOS防御_CC防护_高防CDN服务器_【墨者安全】—墨者盾墨者盾—你的网站贴身保镖!
QQ:800185041
高防免费接入:400-0797-119

渠道合作:156 2527 6999

主页 > CC防护 > 面试官:讲一下CC防御你常用的加密算法

面试官:讲一下CC防御你常用的加密算法

小墨安全管家 2020-07-30 12:11 CC防护 89 ℃
DDoS防御

        ex.printStackTrace(); 

1.1 MD5

    return cipher.doFinal(data); 

    //将密钥存储在map中 

1.2 SHA系列

    Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); 

    try { 

 

  * @param key  密钥 

    return new String(Base64.encodeBase64(rawHmac)); 

          SecretKey secretKey = secretKeyFactory.generateSecret(desKeySpec);  

    PublicKey pubKey = keyFactory.generatePublic(x509KeySpec); 

  * @param key  密钥 

public static String sha256(String text) { 

          SecureRandom random = new SecureRandom(); 

    //取得私钥 

 

public static String decrypt(String src, String password) throws Exception{  

  */ 

  * 初始化密钥对 

  * @param key  密钥 

    SecretKey secretKey = keyFactory.generateSecret(desKeySpec);  

  * @return byte[] 加密数据 

    //初始化公钥 

不可逆加密算法最大的特点算是密钥,然而HMAC是需要密钥的【手动狗头】。

        } else { 

  * 

         SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DESede"); 

    // 创建一具DESKeySpec对象  

二、对称加密算法

    } catch (NoSuchAlgorithmException e) { 

    try { 

   MessageDigest messageDigest = null

public static String encrypt(String data, String key) { 

    Key key = (Key) keyMap.get(PUBLIC_KEY); 

非对称加密算法:RSA

  * @return byte[] 加密数据 

  * @param keyMap 密钥map 

  * @return Map 甲方密钥的Map 

          SecretKeyFactory secretKeyFactory = SecretKeyFactory.getInstance("DES");  

public static String md5(String text) { 

  public static final String KEY_ALGORITHM = "RSA"

    //初始化密钥生成器 

        Cipher cipher = Cipher.getInstance(KEY_AES);// 创建密码器 

        ss = ss.replaceAll("/""_"); 

     } return null;  

        cipher.init(mode, keySpec);// 初始化 

         Cipher cipher = Cipher.getInstance("DES");  

    return cipher.doFinal(data); 

    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); 

    } 

          DESKeySpec desKeySpec = new DESKeySpec(password.getBytes()); 

            content = data.getBytes(defaultCharset); 

        } else { 

    SecureRandom random = new SecureRandom();  

         e.printStackTrace();  

    keyMap.put(PRIVATE_KEY, privateKey); 

 

         DESedeKeySpec dks = new DESedeKeySpec(key.getBytes("UTF-8")); 

 

    KeyFactory keyFactory = KeyFactory.getInstance(KEY_ALGORITHM); 

    //实例化密钥工厂 

 

     } catch (Throwable e) {  

  /** 

  * 

static { 

    } catch (Exception e) { 

    } catch (InvalidKeyException e) { 

    SecretKeyFactory keyFactory = SecretKeyFactory.getInstance("DES");  

也算是讲SHA-1加密算法有碰撞的大概性,尽管特别小。

DES是对称加密算法领域中的典型算法,其密钥默认长度为56位。

  */ 

    DESKeySpec desKeySpec = new DESKeySpec(password.getBytes());  

        if (encrypt) { 

  * @param key  密钥 

加密盐也是比较常听见的一具概念,盐算是一具随机字符串用来和我们的加密串拼接后举行加密。加盐要紧是为了提供加密字符串的安全性。如果有一具加盐后的加密串,黑客经过一定手段那个加密串,他拿到的明文,并不是我们加密前的字符串,而是加密前的字符串和盐组合的字符串,如此相对来讲又增加了字符串的安全性。

/** 

         return Base64.encodeBase64String(cipher.doFinal(dataSource));  

    */ 

 

 

  * @param data 待解密数据 

    } catch(Exception ex){ 

private static final String PUBLIC_KEY = "RSAPublicKey"

 

3.1 RSA

  * @return byte[] 解密数据 

public static String hmacSha256(String text, SecretKeySpec sk) { 

1、压缩性:不管数据长度是多少,计算出来的MD5值长度相同

// 解密 

    return key.getEncoded(); 

private static final String KEY_AES = "AES"

public static String decrypt(String data, String key) { 

    return cipher.doFinal(data); 

    byte[] rawHmac = mac.doFinal(text.getBytes()); 

        mac = Mac.getInstance("HmacSHA256"); 

    return doAES(data, key, Cipher.DECRYPT_MODE); 

private static final String KEY_MD5 = "MD5"

    //取得私钥 

  * @return byte[] 解密数据 

     byte[] bytes = messageDigest.digest(text.getBytes()); 

public static String encryptThreeDESECB(String src, String key) { 

         cipher.init(Cipher.ENCRYPT_MODE, securekey); 

 

    cipher.init(Cipher.ENCRYPT_MODE, pubKey); 

  * @param data 待加密数据 

public static byte[] getPublicKey(Map<String, Object> keyMap) throws Exception { 

private static final String PRIVATE_KEY = "RSAPrivateKey"

   

比较推举的几个加密算法有:

    cipher.init(Cipher.DECRYPT_MODE, secretKey, random);  

面试官:说一下CC谨防你常用的加密算法

         messageDigest = MessageDigest.getInstance("MD5"); 

     return Hex.encodeHexString(bytes);  

        cipher.init(Cipher.DECRYPT_MODE, securekey); 

  * 取得私钥 

  */ 

2、容易计算性:由原数据容易计算出MD5值

    return key.getEncoded(); 

        boolean encrypt = mode == Cipher.ENCRYPT_MODE; 

2.3 AES

private static String doAES(String data, String keyint mode) { 

推举使用对称加密算法有:AES128、AES192、AES256。

//非对称密钥算法 

    //甲方公钥 

 }  

    return null

本文转载自微信公众号「 Java旅途」,能够经过以下二维码关注。转载本文请联系 Java旅途公众号。

  * 加密 

  * @return byte[] 公钥 

private static MessageDigest md5Digest; 

HMAC算法更像是一种加密算法,它引入了密钥,其安全性基本不彻底依靠于所使用的Hash算法

/** 

public static byte[] encryptByPublicKey(byte[] data, byte[] key) throws Exception { 

        Cipher cipher = Cipher.getInstance("DESede/ECB/PKCS5Padding"); 

            return new String(Base64.encodeBase64(result)); 

        src = src.replaceAll("_""/"); 

        byte[] bytesrc = Base64.decodeBase64(src.getBytes("UTF-8")); 

非对称加密算法有两个密钥,这两个密钥彻底不同但又彻底匹配。惟独使用匹配的一对公钥和私钥,才干完成对明文的加密和解密过程。常见的非对称加密有RSA、SM2等。

    //甲方私钥 

4、抗碰撞性:懂数据和MD5值,特别小概率找到相同MD5值相同的原数据。

    PKCS8EncodedKeySpec pkcs8KeySpec = new PKCS8EncodedKeySpec(key); 

    } 

  */ 

/ 加密 

  

2.2 3DES

 

  * @param keyMap 密钥map 

  * 取得公钥 

    // 用密匙初始化Cipher对象  

            return new String(result, defaultCharset); 

  //公钥 

    //初始化公钥 

    //数据加密 

public static String decryptThreeDESECB(String src, String key) { 

    Cipher cipher = Cipher.getInstance(keyFactory.getAlgorithm()); 

/** 

    return Hex.encodeHexString(bytes);  

    //实例化密钥工厂 

    X509EncodedKeySpec x509KeySpec = new X509EncodedKeySpec(key); 


DDoS防御

当前位置:主页 > CC防护 > 面试官:讲一下CC防御你常用的加密算法

标签列表
DDoS防御
网站分类
X
 

QQ客服

400-0797-119