文档章节

PHP的DES加解密

牛牛牛大棚
 牛牛牛大棚
发布于 2016/10/11 09:17
字数 131
阅读 10
收藏 0
<?php
class DES
{
    protected $m_key;
    protected $m_iv;
    
    function DES($key, $iv) {
        $this->m_key = $key;
        $this->m_iv = $iv;
    }
    
    //加密
    function encrypt($str) {
        $size = mcrypt_get_block_size(MCRYPT_DES, MCRYPT_MODE_CBC);
        $strPad = $this->pkcs5_pad($str, $size);
	    $strCbc = mcrypt_cbc(MCRYPT_DES, $this->m_key, $strPad, MCRYPT_ENCRYPT, $this->m_iv);
	    $strHex = bin2hex($strCbc);
	    $strUpper = strtoupper($strHex);
        return $strUpper;
    }
    
    //解密
    function decrypt($str) {
		$strLower = strtolower($str);
        $strBin = hex2bin($strLower);
        $strCbc = mcrypt_cbc(MCRYPT_DES, $this->m_key, $strBin, MCRYPT_DECRYPT, $this->m_iv);
        $strUnpad = $this->pkcs5_unpad($strCbc);
        return $strUnpad;
    }

    function pkcs5_pad($text, $blocksize) {
        $pad = $blocksize - (strlen($text) % $blocksize);
        return $text . str_repeat(chr($pad), $pad);
    }
    
    function pkcs5_unpad($text) {
        $pad = ord($text{strlen($text) - 1});
        if ($pad > strlen($text))
            return false;
        if (strspn($text, chr($pad), strlen($text) - $pad) != $pad)
            return false;
        return substr($text, 0, -1 * $pad);
    }
}
?>

 

© 著作权归作者所有

上一篇: C#获取本机信息
下一篇: C#的DES加解密
牛牛牛大棚
粉丝 0
博文 11
码字总数 11265
作品 0
苏州
程序员
私信 提问
AES加解密算法

前言 在很多项目中,对于安全性的要求是很高的,这就涉及到了各种加密,解密算法,常见的算法有MD5加密、DES加解密、字符串加解密、AES加解密等,下面来一起看一下AES加解密算法。 正文 AES(...

zt15732625878
2017/12/24
0
0
LKT系列加密芯片DES加解密以及OpenSSL DES接口实现加解密

1、测试目标 使用已经预置DES密钥的LKT4201N系列加密芯片完成运算 2、测试环境 本示例运行环境为windows系统、测试软件LCS KIT、LKT-K100开发板。 3、测试步骤 注意:“->”表示使用LCS KIT...

Music121
05/10
0
0
.net 安卓IOS跨平台des加解密双向的(可以互相加解密)

http://blog.sina.com.cn/s/blog_beda09820102v5fu.html .net 安卓IOS跨平台des加解密双向的(可以互相加解密) #region 跨平台加解密(c# 安卓 IOS) // public static string sKey = "1234......

壹峰
2018/07/25
0
0
通过DES实现JavaScript加密和Java解密

场景 前后端使用HTTP协议进行交互的时候,由于HTTP报文为明文,所以通常情况下对于比较敏感的信息可以通过对称加密在前端加密,然后在后端解密实现"混淆"的效果,避免在传输过程中敏感信息的...

SevenLin1993
2018/07/27
0
0
Asp.Net Core 2.0 项目实战(7)MD5加密、AES&DES对称加解密

Asp.Net Core 2.0 项目实战(1) NCMVC开源下载了 Asp.Net Core 2.0 项目实战(2)NCMVC一个基于Net Core2.0搭建的角色权限管理开发框架 Asp.Net Core 2.0 项目实战(3)NCMVC角色权限管理前...

郑州-在路上
2018/04/26
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Redox OS 发布 0.5 版

Redox OS 是一个几乎完全以 Rust 语言编写的通用操作系统及周围生态(例如文件系统、显示服务器及 Rust 版本的 libc)。其遵循微内核架构,在一定程度上兼容于 POSIX。 该项目于日前发布了 ...

linuxCool
50分钟前
2
0
更新上传git/gitee项目时出现密码配置错误(incorrect username or password)的解决办法

1.输入【git remote add origin git地址】 命令时出现incorrect username or password的错误,这是因为之前弹出输入账户和密码时输错了,而且会一直默认错误的账户和密码,因此需要把之前输入...

west_coast
57分钟前
0
0
Jenkins基础入门-1-Jenkins简单介绍和环境安装

如果在做自动化测试的朋友,应该熟悉Jenkins,或者至少使用过。如果一个人没有使用过Jenkins或者hudson,hudson是Jenkins的前身,他还说自己做过自动化测试,只能说,他只不过是在做半自动化...

shzwork
57分钟前
0
0
linux上解压版安装jdk,tomcat

需要的安装包 1.vmware12 2.centos7版本 3.安装完成后需要xshell来连接远程虚拟机,虚拟机保证要联网,网络畅通。 4.xftp用来向linux传输文件用,一般来说xshell和xftp配套使用 5.对应的压缩...

architect刘源源
今天
28
0
使用 spring 的 IOC 解决程序耦合

工厂模式解耦 在实际开发中我们可以把三层的对象都使用配置文件配置起来,当启动服务器应用加载的时候,让一个类中的方法通过读取配置文件,把这些对象创建出来并存起来。在接下来的使用的时...

骚年锦时
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部