PHP使用DES实行加密解密,使用3DES加密算法举行加

作者: 韦德国际1946手机版  发布:2019-07-24

DES是一种规范的数量加密算法,关于那么些算法的详细介绍能够参照wiki和百度周详:

php中有二个恢弘能够协理DES的加密算法,是:extension=php_mcrypt.dll

   DES是一种对称加密算法,也正是因而密文和官方的密钥能够将公开还原出来,在程序支付进度中或者接口可能须求获得原始数据,而发送的数目又比较灵敏(比方用户的密码等消息),那时能够采取DES加密算法,DES的安全性还算可信,只要加密密钥不败露,近年来破解的法子只战国举法进行破解。

近期要使用3Des算法对数码开展加解密,仿照效法了MSDN的例子和C#TripleDES 类,可是依然有些难题,这里把温馨写的二个类贴出来,需求的哥们儿们可以一直利用。

wiki百科    百度完善

PHP使用DES实行加密解密,使用3DES加密算法举行加密解密。在安插文件中将以此扩张展开还不能在windows情形下利用

        再说一下应用时需求注意的地点,

 

php中有一个扩埃迪·Gomez以支撑DES的加密算法,是:extension=php_mcrypt.dll

亟需将PHP文件夹下的 libmcrypt.dll 拷贝到系统的 system32 目录下,这是经过phpinfo能够查看到mcrypt表示那个模块能够经常试用了。

        1.DES加密时须求的key(密钥)长度无法超过8位,一般大家设置8位就能够了。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using System.Security.Cryptography;

在配备文件上校以此扩张张开还不可见在windows境况下使用

下边是PHP中动用DES加密解密的二个事例:

        2.DES加密后的多寡是二进制数据,假诺应用GET方式传输应该将其拍卖一下技艺够(举个例子能够转变来16进制、base64等)。

namespace Rare.Card.Libary.Security
{
    /// <summary>
    /// 构造三个对称算法,使用3Des加密
    ///假使当前的 Key 属性为 NULL,可调用 GenerateKey 方法以创办新的自由 Key。 
    ///假如当前的 IV 属性为 NULL,可调用 GenerateIV 方法以创设新的人身自由 IV
    /// </summary>
    public class CryptoTripleDes
    {
        //加密矢量
        private static byte[] IV = { 0xB0, 0xA2, 0xB8, 0xA3, 0xDA, 0xCC, 0xDA, 0xCC };
        /// <summary>
        /// 使用钦赐的128字节的密钥对8字节数组开始展览3Des加密
        /// </summary>
        /// <param name="keys">密钥,16字节,128位</param>
        /// <param name="values">要加密的数组</param>
        /// <returns>已加密的数组</returns>
        public static byte[] CreateEncryptByte(byte[] keys, byte[] values)
        {
            TripleDESCryptoServiceProvider tdsc = new TripleDESCryptoServiceProvider();
            //钦赐密匙长度,默以为1玖拾肆人
            tdsc.KeySize = 128;
            //使用钦赐的key和IV(加密向量)
            tdsc.Key = keys;
            tdsc.IV = IV;
            //加密情势,偏移
            tdsc.Mode = CipherMode.ECB;
            tdsc.Padding = PaddingMode.None;
            //进行加密转变运算
            ICryptoTransform ct = tdsc.CreateEncryptor();
            //8很主要,加密结果是8字节数组
            byte[] results = ct.TransformFinalBlock(values, 0, 8);

本文由韦德国际1946发布于韦德国际1946手机版,转载请注明出处:PHP使用DES实行加密解密,使用3DES加密算法举行加

关键词: PHP VS.Net 3des