`

一组PHP可逆加密解密算法

    博客分类:
  • PHP
 
阅读更多

对于大部分密码加密,我们可以采用md5、sha1等方法。可以有效防止数据泄露,但是这些方法仅适用于无需还原的数据加密。

对于需要还原的信息,则需要采用可逆的加密解密算法。

下面一组PHP函数是实现此加密解密的方法:

加密算法如下:

function encrypt($data, $key)
{
	$key	=	md5($key);
    $x		=	0;
    $len	=	strlen($data);
    $l		=	strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
        	$x = 0;
        }
        $char .= $key{$x};
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        $str .= chr(ord($data{$i}) + (ord($char{$i})) % 256);
    }
    return base64_encode($str);
}

解密算法如下:

function decrypt($data, $key)
{
	$key = md5($key);
    $x = 0;
    $data = base64_decode($data);
    $len = strlen($data);
    $l = strlen($key);
    for ($i = 0; $i < $len; $i++)
    {
        if ($x == $l) 
        {
        	$x = 0;
        }
        $char .= substr($key, $x, 1);
        $x++;
    }
    for ($i = 0; $i < $len; $i++)
    {
        if (ord(substr($data, $i, 1)) < ord(substr($char, $i, 1)))
        {
            $str .= chr((ord(substr($data, $i, 1)) + 256) - ord(substr($char, $i, 1)));
        }
        else
        {
            $str .= chr(ord(substr($data, $i, 1)) - ord(substr($char, $i, 1)));
        }
    }
    return $str;
}

上述加密解密的过程均需要用到一个加密密钥(即参数$key)。

 

$data = 'PHP加密解密算法';		// 被加密信息
$key = '123';					// 密钥
$encrypt = encrypt($data, $key);
$decrypt = decrypt($encrypt, $key);
echo $encrypt, "\n", $decrypt;

上述将输出类似如下结果:

gniCSOzZG+HnS9zcFea7SefNGhXF
PHP加密解密算法

从上述结果可以看出,这是一组可逆的加密解密算法,可以用于部分需要还原的数据加密。

分享到:
评论

相关推荐

    c# 可逆 加密 解密算法

    本文将详细介绍一个基于C#实现的可逆加密解密算法,并对其原理及代码实现进行深入分析。 #### 二、基础知识 ##### 2.1 对称加密简介 对称加密是一种加密方式,它使用同一个密钥进行加密和解密。这种方式的优点在于...

    一组PHP可逆加密解密算法实例代码

    本文主要介绍了一组PHP可逆加密解密算法的实例代码。首先,我们来看加密算法。这个加密函数(encrypt)基于MD5哈希的密钥进行操作,通过循环遍历输入数据和密钥,对每个字符进行加法运算并取模256,然后将结果转换为...

    qt5AES加密,ES加密/解密算法是一种可逆的对称加密算法,这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推

    "ES加密/解密算法"可能是描述错误,通常指的是AES算法在Elasticsearch(ES)中的应用,因为标签提到了"Elasticsearch",而且在安全领域,Elasticsearch也会用到加密技术来保护数据。 **AES加密算法详解** AES是...

    C#可逆加密算法收集

    本文将深入探讨C#语言中实现的可逆加密算法,特别聚焦于Rijndael算法的运用,这一算法是AES(Advanced Encryption Standard)标准的核心,被广泛用于数据保护、网络安全以及各种保密通信场景。 ### C#中的Rijndael...

    最新python可逆加密算法 可逆加密方式优秀.docx

    在 PHP 中,实现可逆加密解密算法的方法有多种,本文将介绍一种常用的方法,即使用 MD5 哈希函数和 Base64 编码来实现加密和解密。 加密算法实现 加密算法的实现可以分为两个步骤:首先,对输入数据进行 MD5 哈希...

    一个数据加密解密算法

    在给定的"加密解密算法"中,我们可能会遇到几种常见的加密类型。首先是对称加密,如DES(Data Encryption Standard)、3DES(Triple DES)和AES(Advanced Encryption Standard)。对称加密的特点是加密和解密使用...

    java加密解密算法大全

    ### Java加密解密算法详解 #### 一、加密概述与应用 加密技术是信息安全领域中的关键技术之一,其核心在于通过特定算法对原始信息(明文)进行变换,使其成为不可直接阅读的形式(密文),从而保护信息在传输或...

    VB-21种加密解密算法和54种压缩解压算法的源码

    本资源"VB-21种加密解密算法和54种压缩解压算法的源码"提供了一个宝贵的资料库,帮助开发者深入理解和实践这些技术。 首先,让我们探讨21种加密解密算法: 1. **对称加密**:如DES(Data Encryption Standard),...

    php加密算法之实现可逆加密算法和解密分享

    在示例中,我们有一个字符串`'PHP加密解密算法'`,使用密钥`'123'`进行加密。加密后的结果是`'gniCSOzZG+HnS9zcFea7SefNGhXFPHP'`,然后可以使用相同的密钥成功解密回原始信息。 这种加密解密方法虽然简单,但它在...

    加密解密算法(SHA1,CRC32,IDEA,AES)

    在给定的压缩包文件中,包含了几个常见的加密解密算法及其相关的源代码,包括SHA1、CRC32、IDEA和AES。接下来,我们将深入探讨这些算法的工作原理、应用以及它们在信息安全中的重要性。 首先,SHA1(安全哈希算法1...

    SAM的散列存储加密解密算法.rar_SAMhash_sam_sam 加密_sam加密算法_加密解密c

    SAM的散列存储加密解密算法是一种用于保护数据安全的技术,尤其在计算机系统和网络通信中广泛应用。在本文中,我们将深入探讨SAM(可能是“System Account Manager”或自定义命名的算法)的散列存储加密解密算法的...

    PHP可逆字符串加密算法.zip

    "PHP可逆字符串加密算法.zip"是一个包含PHP实现的文件加密算法,适用于保护敏感数据,如在文件管理系统中对文件进行加密。下面将详细介绍相关知识点: 1. **PHP加密库**:PHP内置了多种加密扩展,如MCrypt和OpenSSL...

    CuteFTP 加密解密算法 Delphi版

    在本文中,我们将探讨一个基于Delphi编写的加密解密算法,这是为CuteFTP实现安全传输过程的一部分。 Delphi是一种流行的面向对象的编程语言,源自Pascal,由Embarcadero Technologies开发和维护。它以其高效的...

    密码学课程设计:希尔加密解密算法的实现

    它的核心思想是将明文按照字母表顺序分组,然后通过一个可逆的线性变换矩阵对这些字母组进行加密。希尔加密的解密过程则是其逆操作,即应用矩阵的逆来恢复原始信息。 希尔加密的关键在于选择一个合适的矩阵,这个...

    可逆矩阵加密算法初步研究与应用设计.doc

    可逆矩阵加密算法是一种基于矩阵理论的加密算法,该算法利用矩阵的可逆性来实现加密和解密。下面是对该算法的详细介绍。 1. 可逆矩阵加密算法理论分析 可逆矩阵加密算法的加密原理是基于矩阵乘法的。信息发送端...

    C#加密解密源码,有不可逆加密和可逆加密,可逆加密,MD5不可逆加密等几种方法

    在C#中实现加密通常涉及到多种不同的加密算法和技术,包括但不限于可逆加密(如DES、AES)和不可逆加密(如MD5、SHA1)。这些加密方法各有特点和适用场景。 ### 不可逆加密——MD5 **MD5**(Message-Digest ...

    PHP的几种加密解密算法1

    【PHP的几种加密解密算法】本文主要介绍了PHP中常见的四种加密解密技术:MD5、Crypt、SHA1以及Base64编码。这些技术在数据安全领域有着广泛的应用,主要用于保护敏感信息,防止数据泄露。 1. **MD5加密技术**: - ...

    300种加密解密算法

    以上只是众多加密解密算法的一小部分,每种都有其特定的应用场景和优缺点。在实际应用中,需要根据需求选择合适的算法,同时考虑性能、安全性和效率等因素。理解和掌握这些算法,对于任何从事信息安全工作的人来说都...

    md5 加密解密算法

    在描述中提到的是一个基于MD5的加密解密算法的源代码实例,这是一个控制台应用程序,这意味着我们可以直接在命令行界面运行它。这个程序可能包含了两个关键部分:加密和解密。加密部分会将输入的数据通过MD5算法转换...

Global site tag (gtag.js) - Google Analytics