Le cryptage fait référence à l'utilisation d'un algorithme spécial pour modifier les données d'information d'origine, afin que les utilisateurs non autorisés puissent obtenir les informations cryptées. mais comme nous ne savons pas comment le décrypter, nous ne pouvons toujours pas comprendre le contenu de l'information. Les algorithmes de chiffrement courants peuvent être principalement divisés en : chiffrement symétrique, chiffrement asymétrique et chiffrement unidirectionnel. Différents algorithmes de chiffrement sont utilisés dans différents scénarios. Choisissez l'algorithme approprié en fonction des caractéristiques de l'algorithme de chiffrement, telles que la vitesse de calcul, la sécurité et les méthodes de gestion des clés. Cependant, la sécurité est un indicateur important pour mesurer la qualité de l'algorithme de chiffrement. Un cryptage facilement craqué Les algorithmes sont appelés algorithmes de cryptage faibles, comme l'algorithme DES qui peut être craqué dans un temps limité à l'aide de méthodes exhaustives. Cet article prend comme exemple le code source du langage JAVA pour analyser les causes d'un cryptage faible et comment le réparer. 2. Les dangers d’une perte de cryptage faible. De janvier 2018 à avril 2019, il y avait au total 2 informations de vulnérabilité associées dans CVE. Les informations sur la vulnérabilité sont les suivantes : #Présentation de la vulnérabilité
CVE-2018-9028
L'exemple de code utilisé ci-dessous provient de Benchmark (https : //www.owasp.org/index.php/Benchmark), nom du fichier source : BenchmarkTest00019.java. | 3.1 Code de défaut |
L'exemple d'opération de code ci-dessus consiste à lire le contenu dans la requête Et cryptez-la, et obtenez l'instance de lecture du fichier de configuration |
Figure 1 : Exemple de détection de cryptage faible
# #benchmarkprops
。在第50行加载配置文件,在第52行~53行读取配置文件中的属性cryptoAlg1
,若无此属性默认使用DESede/ECB/PKCS5Padding
给algorithm
赋值。第54行将使用algorithm
作为加密算法构造加密对象c。接下来准备加密的密码。第57~58行实例化了一个DES加密算法的密钥生成器。第59行指定加密对象 c 的操作模式为加密,其中 key 为密钥。第62行~76行对将请求中的输入流转换为字节数组input,在第77行进行对 input 进行加密,加密结果是字节数组result
Utilisez Code Guard pour détecter le code réparé, et vous pourrez voir que le défaut de « cryptage faible » n'existe plus. Comme le montre la figure 2 :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!