Maison développement back-end tutoriel php 关于使用php生成加密的zip文件解决办法

关于使用php生成加密的zip文件解决办法

Jun 13, 2016 am 10:00 AM
ctr encrypt key passport txt

关于使用php生成加密的zip文件
phpmyadmin里面有个zip.lib.php,可以生成zip文件,可是不能加密。那位大哥知道如何加密?(我说的加密是指在解压该文件的时候回要求输入解压密码)。
网上找了好多,基本上都是借用winrar或者zip通过命令行加密,有没有通过php生成加密的zip文件的?

现在怎么不能选专家了,还想请唠叨大哥看看呢。。。

------解决方案--------------------
帮顶!!!!!
------解决方案--------------------
1 现有的操作zip的php提供的函数分为两大类,一是ZipArchive 一是zip,没有发现有对文件加密码的功能.
2 最简单的方式就是用winrar或者zip通过命令行加密,这个你还不选择.
3 另外就是分析加密和未加密后的文件,通过文件读写的方式操作,这个可行性不太高,而且对实现技术要求很高.

------解决方案--------------------
似乎不能加密,加密使用其它技術實現
------解决方案--------------------
加密規則自己定議啊,最簡單的有字符轉換了,比如一個"aaaaa",加密後你想讓它變"bbbbb"。


/**
* Passport 加密函数
*
* @param string 等待加密的原字串
* @param string 私有密匙(用于解密和加密)
*
* @return string 原字串经过私有密匙加密后的结果
*/
function passport_encrypt($txt, $key)
{

// 使用随机数发生器产生 0~32000 的值并 MD5()
srand((double)microtime() * 1000000);
$encrypt_key = md5(rand(0, 32000));

// 变量初始化
$ctr = 0;
$tmp = '';

// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for($i = 0; $i {
// 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
// $tmp 字串在末尾增加两位,其第一位内容为 $encrypt_key 的第 $ctr 位,
// 第二位内容为 $txt 的第 $i 位与 $encrypt_key 的 $ctr 位取异或。然后 $ctr = $ctr + 1
$tmp .= $encrypt_key[$ctr].($txt[$i] ^ $encrypt_key[$ctr++]);
}

// 返回结果,结果为 passport_key() 函数返回值的 base65 编码结果
return base64_encode(passport_key($tmp, $key));
}

/**
* Passport 解密函数
*
* @param string 加密后的字串
* @param string 私有密匙(用于解密和加密)
*
* @return string 字串经过私有密匙解密后的结果
*/
function passport_decrypt($txt, $key)
{
// $txt 的结果为加密后的字串经过 base64 解码,然后与私有密匙一起,
// 经过 passport_key() 函数处理后的返回值
$txt = passport_key(base64_decode($txt), $key);

// 变量初始化
$tmp = '';
// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for ($i = 0; $i {
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $txt 的第 $i + 1 位取异或。然后 $i = $i + 1
$tmp .= $txt[$i] ^ $txt[++$i];
}

// 返回 $tmp 的值作为结果
return $tmp;
}

/**
* Passport 密匙处理函数
*
* @param string 待加密或待解密的字串
* @param string 私有密匙(用于解密和加密)
*
* @return string 处理后的密匙
*/
function passport_key($txt, $encrypt_key)
{
// 将 $encrypt_key 赋为 $encrypt_key 经 md5() 后的值
$encrypt_key = md5($encrypt_key);

// 变量初始化
$ctr = 0;
$tmp = '';

// for 循环,$i 为从 0 开始,到小于 $txt 字串长度的整数
for($i = 0; $i {
// 如果 $ctr = $encrypt_key 的长度,则 $ctr 清零
$ctr = $ctr == strlen($encrypt_key) ? 0 : $ctr;
// $tmp 字串在末尾增加一位,其内容为 $txt 的第 $i 位,
// 与 $encrypt_key 的第 $ctr + 1 位取异或。然后 $ctr = $ctr + 1
$tmp .= $txt[$i] ^ $encrypt_key[$ctr++];
}

// 返回 $tmp 的值作为结果
return $tmp;
}

/**
* Passport 信息(数组)编码函数
*
* @param array 待编码的数组
*
* @return string 数组经编码后的字串

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

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 !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Qu'est-ce qu'Intel TXT ? Qu'est-ce qu'Intel TXT ? Jun 11, 2023 pm 06:57 PM

IntelTXT est une technologie de sécurité assistée par matériel lancée par Intel. Elle peut garantir l'intégrité et la sécurité du serveur lors du démarrage en établissant un espace protégé entre le processeur et le BIOS. Le nom complet de TXT est TrustedExecutionTechnology, qui signifie Trusted Execution Technology. En termes simples, TXT est une technologie de sécurité qui fournit une protection au niveau matériel pour garantir que le serveur n'a pas été modifié par des programmes malveillants ou des logiciels non autorisés lors de son démarrage. celui-ci

Comment convertir du HTML en txt Comment convertir du HTML en txt Aug 31, 2023 am 09:23 AM

Les méthodes de conversion de HTML en txt incluent l'utilisation d'un éditeur de texte, l'utilisation d'outils de conversion en ligne et l'utilisation de la programmation Python. Introduction détaillée : 1. Pour ouvrir un fichier HTML, vous pouvez utiliser n'importe quel éditeur de texte, tel que le Bloc-notes, Sublime Text, etc. Pour sélectionner le contenu de l'intégralité du fichier HTML, vous pouvez appuyer sur la touche de raccourci Ctrl+A ou faire glisser la souris. pour sélectionner et copier la sélection. Le contenu peut être copié en appuyant sur le raccourci Ctrl+C ou via l'option de copie dans le menu contextuel, en ouvrant un nouveau fichier TXT, en utilisant le même éditeur de texte, etc.

Que signifie l'attribut d'identité dans SQL ? Que signifie l'attribut d'identité dans SQL ? Feb 19, 2024 am 11:24 AM

Qu'est-ce que l'identité en SQL ? Des exemples de code spécifiques sont nécessaires. En SQL, l'identité est un type de données spécial utilisé pour générer des nombres à incrémentation automatique. Il est souvent utilisé pour identifier de manière unique chaque ligne de données dans une table. La colonne Identité est souvent utilisée conjointement avec la colonne clé primaire pour garantir que chaque enregistrement possède un identifiant unique. Cet article détaillera comment utiliser Identity et quelques exemples de code pratiques. La manière de base d'utiliser Identity consiste à utiliser Identit lors de la création d'une table.

Comment SpringBoot surveille les événements de changement de clé Redis Comment SpringBoot surveille les événements de changement de clé Redis May 26, 2023 pm 01:55 PM

1. Présentation des fonctions La notification Keyspace permet aux clients de recevoir des événements qui modifient les modifications Rediskey d'une manière ou d'une autre en s'abonnant à des canaux ou à des modèles. Toutes les commandes qui modifient les touches clés. Toutes les clés qui ont reçu la commande LPUSHkeyvalue[value…]. Toutes les clés expirées dans la base de données. Les événements sont distribués via les fonctions d'abonnement et de publication de Redis (pub/sub), de sorte que tous les clients prenant en charge les fonctions d'abonnement et de publication peuvent utiliser directement la fonction de notification de l'espace de clé sans aucune modification. Parce que les fonctions actuelles d'abonnement et de publication de Redis adoptent une stratégie fireandforget, si votre programme

Comment convertir chm en txt Comment convertir chm en txt Oct 17, 2023 pm 02:42 PM

chm est converti en txt à l'aide d'outils de conversion en ligne, de plug-ins de navigateur, d'outils de ligne de commande et de logiciels tiers. Introduction détaillée : 1. Utilisez l'outil de conversion en ligne, téléchargez simplement le fichier CHM, sélectionnez le format TXT, puis téléchargez le fichier TXT converti ; 2. Utilisez le plug-in du navigateur, après avoir installé le plug-in, ouvrez simplement le CHM ; fichier dans le navigateur, puis cliquez sur le bouton du plug-in pour convertir les fichiers CHM au format TXT ; 3. Utilisez les outils de ligne de commande, etc.

Comment résoudre le problème de la suppression par lots des valeurs clés dans Redis Comment résoudre le problème de la suppression par lots des valeurs clés dans Redis May 31, 2023 am 08:59 AM

Problèmes rencontrés : Au cours du processus de développement, vous rencontrerez des clés qui doivent être supprimées par lots selon certaines règles, telles que login_logID (l'ID est une variable). Vous devez maintenant supprimer des données telles que "login_log*", mais se redis. n'a qu'une requête par lots pour les valeurs de clé de classe, mais il n'y a pas de commande pour la suppression par lots d'une certaine classe. Solution : interrogez d'abord, puis supprimez, utilisez xargs pour transmettre les paramètres (xargs peut convertir les données de canal ou d'entrée standard (stdin) en paramètres de ligne de commande), exécutez d'abord l'instruction de requête, puis supprimez la valeur de clé interrogée et les paramètres del d'origine. supprimer. redis-cliKEYSkey* (condition de recherche)|xargsr

La vulnérabilité non patchable de la clé d'authentification à deux facteurs Yubico brise la sécurité de la plupart des appareils Yubikey 5, Security Key et YubiHSM 2FA. La vulnérabilité non patchable de la clé d'authentification à deux facteurs Yubico brise la sécurité de la plupart des appareils Yubikey 5, Security Key et YubiHSM 2FA. Sep 04, 2024 pm 06:32 PM

Une vulnérabilité de clé d'authentification à deux facteurs Yubico non corrigible a brisé la sécurité de la plupart des appareils Yubikey 5, Security Key et YubiHSM 2FA. La JavaCard Feitian A22 et d'autres appareils utilisant les TPM de la série Infineon SLB96xx sont également vulnérables.

FAQ pour les pandas lisant des fichiers txt FAQ pour les pandas lisant des fichiers txt Jan 19, 2024 am 09:19 AM

Pandas est un outil d'analyse de données pour Python, particulièrement adapté au nettoyage, au traitement et à l'analyse des données. Au cours du processus d'analyse des données, nous devons souvent lire des fichiers de données dans différents formats, tels que des fichiers Txt. Cependant, certains problèmes seront rencontrés lors de l'opération spécifique. Cet article présentera les réponses aux questions courantes sur la lecture de fichiers txt avec des pandas et fournira des exemples de code correspondants. Question 1 : Comment lire le fichier txt ? Les fichiers txt peuvent être lus à l'aide de la fonction read_csv() de pandas. Ceci est dû au fait

See all articles