PHP針對數字的加密解密類,可直接使用
<?php
namespace app;
/**
* 加密解密類
* 該演算法僅支援加密數字。比較適用於資料庫中id欄位的加密解密,以及根據數字顯示url的加密。
* @author 深秋的竹子
* @version alpha
* @加密原則 標記長度 + 補位 + 數字替換
* @加密步驟:
* 將a-z,A-Z,0-9 62個字元打亂,取前M(數字最大的位數)位作為 標記長度字串,取第M+1 到第M+10位為數字替換字串,剩餘的為補位字串
* 1.計算數字長度n,取亂碼的第n位作為標記長度。
* 2.計算補位的長度,加密串的長度N -1 - n 為補位的長度。根據指定的演算法得到補位字串。
* 3.根據數字替換字串替換數字,得到數字加密字串。
* 標記長度字元 + 補位字串 + 數字加密字串 = 加密串
* Usage:
* $obj = new XDeode(9);
* $e_txt = $obj->encode(123);
* echo $e_txt.'<br/>';
* echo $key->decode($e_txt);
*/
class XDeode{
private $strbase = "Flpvf70CsakVjqgeWUPXQxSyJizmNH6B1u3b8cAEKwTd54nRtZOMDhoG2YLrI";
private $key,$length,$codelen,$codenums,$codeext;
// 初始化
function __construct($length = 9,$key = 2543.5415412812){
$this->key = $key;
$this->length = $length;
$this->codelen = substr($this->strbase,0,$this->length);
$this->codenums = substr($this->strbase,$this->length,10);
$this->codeext = substr($this->strbase,$this->length + 10);
}
// 編碼
function encode($nums){
$rtn = "";
$numslen = strlen($nums);
//密文第一位標記數字的長度
$begin = substr($this->codelen,$numslen - 1,1);
//密文的擴充套件位
$extlen = $this->length - $numslen - 1;
$temp = str_replace('.', '', $nums / $this->key);
$temp = substr($temp,-$extlen);
$arrextTemp = str_split($this->codeext);
$arrext = str_split($temp);
foreach ($arrext as $v) {
$rtn .= $arrextTemp[$v];
}
$arrnumsTemp = str_split($this->codenums);
$arrnums = str_split($nums);
foreach ($arrnums as $v) {
$rtn .= $arrnumsTemp[$v];
}
return $begin.$rtn;
}
//解碼
function decode($code){
$begin = substr($code,0,1);
$rtn = '';
$len = strpos($this->codelen,$begin);
if($len!== false){
$len++;
$arrnums = str_split(substr($code,-$len));
foreach ($arrnums as $v) {
$rtn .= strpos($this->codenums,$v);
}
}
return $rtn;
}
}
?>
相關推薦
PHP針對數字的加密解密類,可直接使用
<?phpnamespace app;/** * 加密解密類 * 該演算法僅支援加密數字。比較適用於資料庫中id欄位的加密解密,以及根據數字顯示url的加密。 * @author 深秋的竹子 * @ver
php 數據分頁類,可自定義多個分頁樣式
logs echo oot log 好的 num 方式 turn pre 調用分頁類的方法: // 測試分頁 public function pageTestAction() { Load::load_class(‘getPage‘,DI
PHP中AES加密解密類
我們在工作中會遇到各種加密,下面就是PHP中AES加密解密的類 <?php class Aes { /** * var string&nbs
PHP對接APP的介面類,可返回json資料,xml資料
<?php /* * APP資料處理類 * 作 者:永樂開發 * 日 期:2017.7.31 * 郵 箱:[email protected] * 博 客:http://www.isu5.cn http://it.alipea.com */ class R
[轉]DES加密和解密工具類,可自定義key
import javax.crypto.Cipher; import java.security.Key; import java.security.Security; public class DesUtils { /** * 字串預設鍵
php aes加密解密類(兼容php5、php7)
bytes pri rip dom ase lee vat idea cipher <?php /** * @desc:php aes加密解密類 * @author [Lee] <[<[email protected]>]> */ class
加密解密演算法,客戶端C++加密,服務端PHP解密
這裡有兩個我之前經常用的加密/解密的字串函式: /** * 可逆的字串加密函式 * @param int $txtStream 待加密的字串內容 * @param int $password 加密密碼 * @return string 加密後的字串 */ public
PHP DES加密解密類
今天寫App介面的時候需要傳遞加密資料給APP端,於是就寫了下面的DES加密類,親測正確程式碼如下 class CryptDes { function __construct(){ $this->key = 'codelovers'; //金
用CryptoJS 實現js端3des加密和解密,用openssl_encrypt實現php的3des加密解密,相容java和C#和c++等
因為要開發社交平臺,涉及到聊天內容,這些敏感內容想用3des加密傳輸,百度了好多資料,測試了好多次,終於實現了功能,可以直接使用,這裡寫下來,希望幫助到其他朋友。 聽說微信小程式需要資料加密,相信這個能幫到大家。 這裡說一下,iv向量一般是8位
C#.NET 程序員的福利,自己寫的一個XML操作類,可實現像jquery一樣方便的xml操作,且不用專門去處理命名空間。
console region ignorecas node 處理 命名空間 void clone 一個 此工具是進入一家新公司之後實現的,主要是工作當中操作 xml 的時間太多,因為公司按任務計“工作量”,領導給我安排的時間遠遠不夠完善此工具【悲哀的
java文本文件加密解密類
file you location ble jbutton getpath ini cati absolute 原文:http://www.open-open.com/code/view/1420031154765 import java.awt.*; impor
MD5加密解密類(asp.net)&使用MD5過時處理
bytes div height crypt then .text ble tco doc 加密類 #region ========加密======== /// <summary> /// 加密 /// </summary> /
C# 常見加密解密類
ret static ostream 代碼示例 normal text summary 封裝 toolbar 常見的加密方式分為可逆和不可逆兩種方式 可逆:RSA,AES,DES等 不可逆:常見的MD5,SHAD等 常見的加密方式封裝到一個Pass
javascript與php實現openssl加密/解密
var method utf8 加密 Opens ole u+ php_eol 下載 javascript:a. 下載: npm install crypto-js b. 代碼: var CryptoJS = require("crypto-js") // 加密 var
PHP使用AES加密/解密
AES加密在php5的版本中使用的mcrypt_decrypt 函式,該函式已經在php7.1後棄用了,取而代之的是openssl的openssl_encrypt和openssl_decrypt,並且程式碼也非常精簡,下面是示例程式碼: class Aes { public $key = ''
一個任務管理類的c++實現,可直接通過編譯,目的:提高效率,防止頻繁申請記憶體和釋放
#include <iostream> #include <pthread.h> #include <semaphore.h> #include <errno.h> #include <queue> using namespace std;
通用RSA加密 - PHP+Java+Javascript加密解密
php端生成 公鑰私鑰 1、openssl genrsa -out rsa_private_key.pem 1024 私鑰 2、openssl rsa -in rsa_private_key.pem -pubout -out rsa_public_key.pem&nbs
PHP提取字串中視訊url地址函式,可直接使用
PHP程式提取字串中的視訊url地址,可直接使用,使用方法: get_content_video($contents); /** * PHP提取字串中視訊url地址 * @ Linyufan.com * @ 2018.9.11 */ function get_co
簡單的給數字加密解密
#include <stdio.h> // 整型 ----> 陣列 int Int_To_Array(int num, int array[]) { int i = 0; int len=0; while (num) {
php如何openssl_encrypt加密解密
最近在對接客戶的CRM系統,獲取令牌時,要用DES方式加密解密,由於之前沒有搞錯這種加密方式,經過請教了“百度”和“谷歌”兩個老師後,結合了多篇文件內容後,終於實現了。 一、DES介紹 DES 是對稱性加密裡面常見一種,全稱為 Data Encryption Standard,即資料