Maison  >  Article  >  développement back-end  >  Extension PHP pour générer un ID de chaîne unique basé sur des nombres

Extension PHP pour générer un ID de chaîne unique basé sur des nombres

不言
不言original
2018-04-13 16:01:282267parcourir

Le contenu partagé avec vous dans cet article est une extension PHP qui génère un identifiant de chaîne unique basé sur des nombres. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

Les hashids sont une méthode qui. peut générer des identifiants de chaîne uniques, des numéros d'identification de chaîne non séquentiels, il peut également déchiffrer ces identifiants, vous pouvez l'utiliser pour crypter les identifiants numériques que vous ne souhaitez pas exposer aux utilisateurs.

Installation

$ git clone https://github.com/cdoco/hashids.phpc.git
$ cd hashids.phpc
$ phpize && ./configure && make && make install

Vous pouvez définir certaines options dans php.ini, ou vous pouvez les définir dans le constructeur, mais je vous recommande de les définir dans php.ini afin que vous puissiez avoir de meilleures performances.

[hashids]
extension=hashids.so

//默认是空字符串
hashids.salt=cdoco

//默认长度是 0
hashids.min_hash_length=20

//默认是 abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890
//你可以自己设置它,比如你使用全部小写的字符
hashids.alphabet=abcdefghijklmnopqrstuvwxyz

Démarrage rapide

$hashids = new Hashids();

$hash = $hashids->encode(1, 2, 3, 4, 5); // ADf9h9i0sQ
$numbers = $hashids->decode($hash); // [1, 2, 3, 4, 5]

//或者你可以用静态方法调用
$hash = Hashids::encode(1, 2, 3, 4, 5); // ADf9h9i0sQ
$numbers = Hashids::decode($hash); // [1, 2, 3, 4, 5]

Performances

Auparavant, c'était une fonction implémentée par du code php pur, mais maintenant elle est encapsulée dans une extension php, et les performances sont meilleures que celles du code php pur. La version de php a été améliorée d'une centaine de fois

Extension PHP pour générer un ID de chaîne unique basé sur des nombres

Autres

$hashids = new Hashids();

$hash = $hashids->encode(1, 2, 3, 4, 5); // ADf9h9i0sQ
$hash = $hashids->encode([1, 2, 3, 4, 5]); // ADf9h9i0sQ

Paramètres de la méthode de construction

new Hashids(string $salt, int $min_hash_length, string $alphabet);

//example
new Hashids("this is salt.", 20, 'abcdefghijklmnopqrstuvwxyz');

Cryptage et déchiffrement hexadécimal

$hashids = new Hashids();

$hash = $hashids->encodeHex('FFFFDD'); // rYKPAK
$hex = $hashids->decodeHex($hash); // FFFFDD

                                                                                              

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn