一、前言
PHP5.5提供了许多新特性及Api函数,其中之一就是Password Hashing API(创建和校验哈希密码)。
它包含4个函数:password_get_info()、password_hash()、password_needs_rehash()、password_verify()。
在PHP5.5之前,我们对于密码的加密可能更多的是采用md5或sha1之类的加密方式(没人像CSDN那样存明文吧。。),如:
echo md5("123456"); //输出: e10adc3949ba59abbe56e057f20f883e
但是简单的md5加密很容易通过字典的方式进行破解,随便找个md5解密的网站就能获取原始密码。
二、Password Hashing API
php5.5提供的Password Hashing API就能很好的解决这些问题。
我们先来看password_hash()函数:
它有三个参数:密码、哈希算法、选项。前两项为必须的。
让我们使用password_hash()简单的创建一个哈希密码:
$hash = password_hash($pwd, PASSWORD_DEFAULT);
echo $hash;
上例输出结果类似:$2y$10$4kAu4FNGuolmRmSSHgKEMe3DbG5pm3diikFkiAKNh.Sf1tPbB4uo2
并且刷新页面该哈希值也会不断的变化。
哈希值创建完毕,我们可以用password_verify()来校验密码是否和哈希值匹配:
它接收2个参数:密码和哈希值,并返回布尔值。检查之前生成的哈希值是否和密码匹配:
echo "密码正确";
} else {
echo "密码错误";
}
基本上使用以上这2个函数就能安全的创建和校验hash密码了,还有另外2个API函数:
password_needs_rehash() //检查一个hash值是否是使用特定算法及选项创建的
三、点评
虽然通过password_hash()创建的哈希密码更加安全,但是却降低了互操作性。
如我们使用md5方式,在php中用标准的MD5加密,很容易通过其他语言来校验,如node.js:
if(hash == "e10adc3949ba59abbe56e057f20f883e") console.log('密码正确');
而使用password_hash()加密的哈希值基本只能通过PHP的password_verify来校验。
这2种方法各有优劣,是使用md5(或sha1等)+salt(干扰字符串)的方式还是使用password_hash()大家根据具体情况取舍把。

L'équilibrage de charge affecte la gestion de la session, mais peut être résolu avec la réplication de la session, l'adhérence des sessions et le stockage centralisé de session. 1. Session Replication Copy Données de session entre les serveurs. 2. Session Stickleness dirige les demandes d'utilisateurs vers le même serveur. 3. Le stockage centralisé de session utilise des serveurs indépendants tels que Redis pour stocker les données de session pour assurer le partage de données.

Session BlockingSateChnique utilisétoenSureAuser'sessionremainSexclusiVetoonUseratatime.ITCUCIALFORPREVERSDATACORUPRUPTIONANDSECRYSEURCHEBRESSInMulti-userApplications.SessionLockingisImplementEdUsingServer-SidelockingMechanisms, telasreentrantLockinjj

Les alternatives aux séances PHP comprennent des cookies, une authentification basée sur des jetons, des sessions basées sur la base de données et Redis / Memcached. 1.CooKies Gérer les sessions en stockant des données sur le client, ce qui est simple mais faible en sécurité. 2. L'authentification basée sur le token utilise des jetons pour vérifier les utilisateurs, ce qui est hautement sécurisé mais nécessite une logique supplémentaire. 3.Database basée sur les séances stocke les données dans la base de données, qui a une bonne évolutivité mais peut affecter les performances. 4. redis / memcached utilise un cache distribué pour améliorer les performances et l'évolutivité, mais nécessite une correspondance supplémentaire

SessionHijacking fait référence à un attaquant imitant un utilisateur en obtenant le SessionID de l'utilisateur. Les méthodes de prévention comprennent: 1) le chiffrement de la communication à l'aide de HTTPS; 2) Vérification de la source du sessionID; 3) Utilisation d'un algorithme de génération de sessionID sécurisé; 4) Mise à jour régulière du SessionID.

L'article traite de PHP, détaillant sa forme complète, les principales utilisations du développement Web, la comparaison avec Python et Java, et sa facilité d'apprentissage pour les débutants.

PHP gère les données de formulaire à l'aide de $ \ _ Post et $ \ _ obtiennent des superglobaux, avec la sécurité assurée par la validation, la désinfection et les interactions de base de données sécurisées.

L'article compare PHP et ASP.NET, en se concentrant sur leur pertinence pour les applications Web à grande échelle, les différences de performances et les fonctionnalités de sécurité. Les deux sont viables pour les grands projets, mais PHP est open-source et indépendant de la plate-forme, tandis que ASP.NET,

La sensibilité à la caisse de PHP varie: les fonctions sont insensibles, tandis que les variables et les classes sont sensibles. Les meilleures pratiques incluent la dénomination cohérente et l'utilisation de fonctions insensibles à des cas pour les comparaisons.


Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Outils chauds

SublimeText3 Linux nouvelle version
Dernière version de SublimeText3 Linux

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

VSCode Windows 64 bits Télécharger
Un éditeur IDE gratuit et puissant lancé par Microsoft

Navigateur d'examen sécurisé
Safe Exam Browser est un environnement de navigation sécurisé permettant de passer des examens en ligne en toute sécurité. Ce logiciel transforme n'importe quel ordinateur en poste de travail sécurisé. Il contrôle l'accès à n'importe quel utilitaire et empêche les étudiants d'utiliser des ressources non autorisées.

PhpStorm version Mac
Le dernier (2018.2.1) outil de développement intégré PHP professionnel
