深入研究 UCenter API 之 PHP加密与解密
深入研究 UCenter API 之 PHP加密与解密
UCenter API 中的加密解密函数,被称为 php 领域的经典之作,也是康盛公司为 php 做的一大贡献
这个函数,可以通过一个 KEY ,生成动态的密文,并可以再通过这个 KEY 来解
// $string: 明文 或 密文 // $operation:DECODE表示解密,其它表示加密 // $key: 密匙 // $expiry:密文有效期 //字符串解密加密 function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0) { // 动态密匙长度,相同的明文会生成不同密文就是依靠动态密匙 $ckey_length = 4; // 随机密钥长度 取值 0-32; // 加入随机密钥,可以令密文无任何规律,即便是原文和密钥完全相同,加密结果也会每次不同,增大破解难度。 // 取值越大,密文变动规律越大,密文变化 = 16 的 $ckey_length 次方 // 当此值为 0 时,则不产生随机密钥 // 密匙 $key = md5($key ? $key : UC_KEY); // 密匙a会参与加解密 $keya = md5(substr($key, 0, 16)); // 密匙b会用来做数据完整性验证 $keyb = md5(substr($key, 16, 16)); // 密匙c用于变化生成的密文 $keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5('1303808563'), -$ckey_length)) : ''; // 参与运算的密匙 $cryptkey = $keya.md5($keya.$keyc); $key_length = strlen($cryptkey); // 明文,前10位用来保存时间戳,解密时验证数据有效性,10到26位用来保存$keyb(密匙b),解密时会通过这个密匙验证数据完整性 // 如果是解码的话,会从第$ckey_length位开始,因为密文前$ckey_length位保存 动态密匙,以保证解密正确 $string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string; $string_length = strlen($string); $result = ''; $box = range(0, 255); $rndkey = array(); // 产生密匙簿 for($i = 0; $i <= 255; $i++) { $rndkey[$i] = ord($cryptkey[$i % $key_length]); } // 用固定的算法,打乱密匙簿,增加随机性,好像很复杂,实际上对并不会增加密文的强度 for($j = $i = 0; $i < 256; $i++) { $j = ($j + $box[$i] + $rndkey[$i]) % 256; $tmp = $box[$i]; $box[$i] = $box[$j]; $box[$j] = $tmp; } // 核心加解密部分 for($a = $j = $i = 0; $i < $string_length; $i++) { $a = ($a + 1) % 256; $j = ($j + $box[$a]) % 256; $tmp = $box[$a]; $box[$a] = $box[$j]; $box[$j] = $tmp; // 从密匙簿得出密匙进行异或,再转成字符 $result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256])); } if($operation == 'DECODE') { // 验证数据有效性,请看未加密明文的格式 if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) { return substr($result, 26); } else { return ''; } } else { // 把动态密匙保存在密文里,这也是为什么同样的明文,生产不同密文后能解密的原因 // 因为加密后的密文可能是一些特殊字符,复制过程可能会丢失,所以用base64编码 return $keyc.str_replace('=', '', base64_encode($result)); } } echo authcode('123456', 'INCODE', 'scutephp', 0); echo ""; echo authcode('3575ijqlNCR+R3s7Aakwy1HlvDzHw5g4oKp82qhE7q5FS88', 'DECODE', 'scutephp', 0);

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

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

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

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Avec la popularité du courrier électronique dans notre quotidien, l’envoi d’e-mails est devenu une fonctionnalité essentielle dans de nombreuses applications. En tant que langage de développement Web populaire, PHP fournit également une interface API d'envoi d'e-mails correspondante. Cet article présentera l'interface API d'envoi d'e-mails en PHP aux débutants et aux développeurs, notamment comment configurer le serveur de messagerie, comment utiliser les fonctions de messagerie intégrées de PHP et comment utiliser une bibliothèque d'envoi d'e-mails tierce. 1. Configurez le serveur de messagerie Avant d'utiliser PHP pour envoyer du courrier, vous devez d'abord configurer un serveur SMTP.

Site Web d'interface API gratuite : 1. UomgAPI : une plate-forme qui fournit des services API gratuits stables et rapides, avec plus de 100 interfaces API ; 2. free-api : fournit plusieurs interfaces API gratuites ; 3. API JSON : fournit une interface API de données gratuite ; . AutoNavi Open Platform : fournit des interfaces API liées aux cartes ; 5. Reconnaissance faciale Face++ : fournit des interfaces API liées à la reconnaissance faciale ; 6. Speed Data : fournit plus d'une centaine d'interfaces API gratuites, adaptées à divers besoins dans le cas des données ; sources ; 7. Données agrégées, etc.

Il existe différents types d'interfaces API, notamment l'API RESTful, l'API SOAP, l'API GraphQL, etc. L'API RESTful communique via le protocole HTTP, avec une conception simple et efficace, qui est le style de conception actuel de l'API Web. L'API SOAP est basée sur XML, se concentre sur l'interopérabilité entre les langues et les plates-formes et est principalement utilisée dans les grandes entreprises et les agences gouvernementales. L'API GraphQL est un nouveau langage de requête et environnement d'exécution qui prend en charge les requêtes et réponses de données flexibles.

Une interface API est une spécification d'interaction entre des composants logiciels et est utilisée pour mettre en œuvre la communication et l'échange de données entre différentes applications ou systèmes. L'interface API agit comme un « traducteur », convertissant les instructions du développeur en langage informatique afin que les applications puissent fonctionner ensemble. Ses avantages incluent un partage pratique des données, un développement simplifié, des performances améliorées, une sécurité renforcée, une productivité et une interopérabilité améliorées.

Avec la popularité croissante des applications Web, les API (Application Programming Interfaces) deviennent de plus en plus importantes et jouent un rôle de plus en plus important dans le développement Web. WebAPI est une technologie qui permet aux utilisateurs d'accéder à des applications via Internet. Il s'agit d'un outil de base pour combiner différentes applications. PHP est un langage de programmation largement utilisé, notamment dans le domaine du développement web. Les développeurs peuvent permettre à d'autres applications d'utiliser leurs fonctionnalités d'application en développant des interfaces API PHP. Pour y parvenir

Présentation de l'utilisation du langage Go et de Redis pour créer des interfaces API : le langage Go (Golang) est un langage de programmation concis, efficace et puissant, tandis que Redis est une base de données open source en mémoire qui fournit des structures de données riches et de puissantes fonctions de requête. Cet article explique comment utiliser le langage Go et Redis pour créer des interfaces API et fournit des exemples de code spécifiques. Étape 1 : Installez et configurez l'environnement du langage Go. Tout d'abord, vous devez installer le langage Go sur votre ordinateur et définir les variables d'environnement appropriées. Après avoir terminé cette étape

À l’ère d’Internet d’aujourd’hui, les comptes officiels WeChat sont devenus un canal de marketing important pour de plus en plus d’entreprises. Si vous souhaitez que votre compte officiel WeChat implémente plus de fonctions, vous devez souvent écrire les interfaces correspondantes. Cet article utilisera le langage PHP comme exemple pour présenter comment créer une interface API de compte public WeChat. 1. Préparation Avant d'écrire l'interface API du compte public WeChat, le développeur doit disposer d'un compte de compte public WeChat et demander les autorisations d'interface de développeur sur la plateforme publique WeChat. Une fois l'application réussie, vous pouvez obtenir les développeurs AppID et AppSe appropriés.

Comment utiliser PHP pour appeler l'interface API et réaliser l'interaction des données ? Avec le développement d'applications Web, de nombreux développeurs doivent utiliser des interfaces API (Application Programming Interface) pour mettre en œuvre l'interaction des données avec des services tiers. En tant que langage de développement back-end couramment utilisé, PHP fournit des fonctions puissantes pour appeler des interfaces API pour la transmission et le traitement des données. Cet article explique comment utiliser PHP pour appeler l'interface API et fournit quelques exemples de code pour aider les lecteurs à mieux comprendre.
