導航:首頁 > 文檔加密 > php異或加密解密

php異或加密解密

發布時間:2022-02-08 12:46:16

Ⅰ 關於php 類似md5那種加密出來全小寫混合數字但是可以解密的函數有沒有

可以使用字元串到16進制和16進制到字元串實現


<?php
echostr_encode("哈123abc-=/*-+=");//顯示:
echostr_decode("");//顯示:哈123abc-=/*-+=

functionstr_encode($string){//字元串轉十六進制
$hex="";
for($i=0;$i<strlen($string);$i++)
$hex.=dechex(ord($string[$i]));
$hex=strtoupper($hex);
return$hex;
}

functionstr_decode($hex){//十六進制轉字元串
$string="";
for($i=0;$i<strlen($hex)-1;$i+=2)
$string.=chr(hexdec($hex[$i].$hex[$i+1]));
return$string;
}

Ⅱ PHP加密解密函數 回答有追加!!!

我這里用到了一個函數,與你上面說的解密函數類似,不過是加密解密都和在一起的

/*
* $string: 明文 或 密文
* $operation:DECODE表示解密,其它表示加密
* $key: 密匙
* $expiry:密文有效期
* */
function authcode($string, $operation = 'DECODE', $key = '', $expiry = 0)
{
// 動態密匙長度,相同的明文會生成不同密文就是依靠動態密匙
$ckey_length = 4;

// 密匙
$key = md5($key ? $key : 'livcmsencryption ');
// 密匙a會參與加解密
$keya = md5(substr($key, 0, 16));
// 密匙b會用來做數據完整性驗證
$keyb = md5(substr($key, 16, 16));
// 密匙c用於變化生成的密文
$keyc = $ckey_length ? ($operation == 'DECODE' ? substr($string, 0, $ckey_length): substr(md5(microtime()), -$ckey_length)) : '';
// 參與運算的密匙
$cryptkey = $keya.md5($keya.$keyc);
$key_length = strlen($cryptkey);
// 明文,前10位用來保存時間戳,解密時驗證數據有效性,10到26位用來保存$keyb(密匙b),解密時會通過這個密匙驗證數據完整性
// 如果是解碼的話,會從第$ckey_length位開始,因為密文前$ckey_length位保存 動態密匙,以保證解密正確
$string = $operation == 'DECODE' ? base64_decode(substr($string, $ckey_length)) : sprintf('%010d', $expiry ? $expiry + time() : 0).substr(md5($string.$keyb), 0, 16).$string;
$string_length = strlen($string);
$result = '';
$box = range(0, 255);
$rndkey = array();
// 產生密匙簿
for($i = 0; $i <= 255; $i++) {
$rndkey[$i] = ord($cryptkey[$i % $key_length]);
}
// 用固定的演算法,打亂密匙簿,增加隨機性,好像很復雜,實際上對並不會增加密文的強度
for($j = $i = 0; $i < 256; $i++) {
$j = ($j + $box[$i] + $rndkey[$i]) % 256;
$tmp = $box[$i];
$box[$i] = $box[$j];
$box[$j] = $tmp;
}
// 核心加解密部分
for($a = $j = $i = 0; $i < $string_length; $i++) {
$a = ($a + 1) % 256;
$j = ($j + $box[$a]) % 256;
$tmp = $box[$a];
$box[$a] = $box[$j];
$box[$j] = $tmp;
// 從密匙簿得出密匙進行異或,再轉成字元
$result .= chr(ord($string[$i]) ^ ($box[($box[$a] + $box[$j]) % 256]));
}
if($operation == 'DECODE') {
// substr($result, 0, 10) == 0 驗證數據有效性
// substr($result, 0, 10) - time() > 0 驗證數據有效性
// substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16) 驗證數據完整性
// 驗證數據有效性,請看未加密明文的格式
if((substr($result, 0, 10) == 0 || substr($result, 0, 10) - time() > 0) && substr($result, 10, 16) == substr(md5(substr($result, 26).$keyb), 0, 16)) {
return substr($result, 26);
} else {
return '';
}
} else {
// 把動態密匙保存在密文里,這也是為什麼同樣的明文,生產不同密文後能解密的原因
// 因為加密後的密文可能是一些特殊字元,復制過程可能會丟失,所以用base64編碼
return $keyc.str_replace('=', '', base64_encode($result));
}
}

Ⅲ php 有什麼辦法加密解密,加密的密文長度都是一樣的

使用非對稱加密方式 比如RSA

Ⅳ delphi 異或加密 如何用PHP解密 如圖

你看看下在的代碼行不行 差不多這個意思了,如果有問題可以私信

functiondec($str)
{
$XorKey=array(1,2,3,4,5,6,7,8);//這個應當是密鑰
$rt='';
$j=0;
for($i=1;$i<=strlen($str)/2;$i++)
{
$t=intval('0x'.substr($str,$i*2-1,2))^$XorKey[$j];
$rt=$rt.chr($t);
$j=($j+1)%8;
}
return$rt;
}
$ec='12345678';
echodec($ec);

Ⅳ 請教 php如何對字元串加密和解密,求一個相關的實例!

base64_decode() 解密

base64_encode()加密

<?php
$str='Thisisanencodedstring';
echobase64_encode($str);
?>

Ⅵ php中有什麼加密解密演算法和易語言是一樣的

軟體我已發送,請按照步驟進行使用!!
希望回答能給你帶來幫助~
如果滿意,請採納,如還有疑問,可繼續追問!
您也可以向我們團隊發出請求,會有更專業的人來為您解答!

Ⅶ php異或演算法

如下 我個人習慣 ''----"" []--------{}
其實我還沒做過加密 個人想法
原文 或運算 密碼模板 = 密文
有你提示
密文 或運算 密碼模板 =原文
<?php

$str = "abcdef";//源文
$tem = "qwertt";//密碼模板
$mm1 = "";//第一次或運算後密文
$mm2 = "";//第二次或運算後密文---即原文

for($i = 0;$i<strlen($str);$i++){
$mm1 .= $str{$i} ^ $tem{$i};

}
echo $mm1;//----很少見的符號
echo "<br/>";
for($i = 0;$i<strlen($str);$i++){
$mm2 .= $mm1{$i} ^ $tem{$i};
}
echo $mm2;//----abcdef
?>
拓展:密碼模板不能太長 -- 解決方法---改為某一個字元----容易破解---改為若干字元---如下
<?php

$str = "abcdef12546bf v vfd";//源文
$tem = "abc";//密碼模板
$mm1 = "";//第一次或運算後密文
$mm2 = "";//第二次或運算後密文---即原文

for($i = 0;$i<strlen($str);$i++){
$j = $i % strlen($tem);
$mm1 .= $str{$i} ^ $tem{$j};

}
echo "mm1如下<br/>";//
echo $mm1;//不曉得什麼原因若無上一行 沒顯示 但如果在上面$j前面加一個 echo
echo "<br/>";
for($i = 0;$i<strlen($str);$i++){
$j = $i % strlen($tem);
$mm2 .= $mm1{$i} ^ $tem{$j};

}
echo "原文如下<br/>";
echo $mm2;
?>
解釋:$j = $i % strlen($tem);依次取0 1 2 3 ....0 1 2 3 ....也就是把密碼模板中字元依次取出
----到最後一個字元時----再從頭開始取
疑惑:我用的時EclipsePHP 若無echo "mm1如下<br/>";
下一行即echo $mm1無法在Browser顯示 但若在echo $mm1之前有其他echo 也可以顯示
拓展:$tem能可有特殊字元 數字 $str可有漢字

Ⅷ 請教php源碼加密及解密問題

用dw編輯器自帶的加密工具,或者自己寫js加密解密腳本

Ⅸ 其他語言如何解密PHP多字元串的異或加密

利用「^」異或運算對字元串進行加密

思路:1.先創建字元串輸入的Scanner;

2.通過char[] array = password.toCharArray();// 獲取字元數組;

3.遍歷字元數組,按目前理解要用到遍歷:數組所有元素進行訪問,比如你要輸出數組里所有的信息時,就要用到

4.進行異或運算

按位做「異或」運算是:位值相同得1,不同得0

例如:

< 加密過程:>

原解釋的二進制為 1 1 0 0 ----原文

設定的key的二進制為 0 1 1 0 ----密匙

兩者做「異或」結果為 0 1 0 1 ----密文

< 解密過程:>

0 1 0 1----密文

0 1 1 0----密匙

兩者「異或」就得到了原文 1 1 0 0 ----原文

詳細代碼:

package com.lixiyu;

import java.util.Scanner;

public class Example {

public static void main(String[] args){

Scanner sca=new Scanner(System.in);

System.out.println("請輸入一個英文字元串或解密字元串");

String line=sca.nextLine();//獲取用戶輸入信息

char[] array=line.toCharArray();//獲取字元數組

for (int i=0;i<array.length;i++){//歷遍字元數組

array[i]=(char) (array[i]^20000);//對數組每個元素進行異或運算

}

System.out.println("加密解密結果如下:");

System.out.println(new String(array));//輸出密鑰

}

}

異或運算:

1 ^ 1 = 0

1 ^ 0 = 1

0 ^ 1 = 1

0 ^ 0 = 0

字元'A' 的ASCII編碼為65 : 00000000 01000001

取整數7 : 00000000 00000000 00000000 00000111

XOR運算後 : 00000000 00000000 00000000 01000110

簡單加密演算法代碼如下 :

public class Test {
public static final int KEY = 7;
public static void main(String[] args) {
String str = "Hello World!";
StringBuffer str2 = new StringBuffer(); //存儲加密後的字元串
StringBuffer str3 = new StringBuffer(); //存儲解密後的字元串
//加密過程
for(int i=0;i<str.length();i++)
{
char c = (char)(str.charAt(i) ^ KEY);
str2.append(c);
}
//解密過程
for(int i=0;i<str2.length();i++)
{
char c = (char)(str2.charAt(i) ^ KEY);
str3.append(c);
}
System.out.println("原始 的字元串為:" + str);
System.out.println("加密後 的字元串為:" + str2);
System.out.println("解密後 的字元串為:" + str3);
}
}

輸出:

原始 的字元串為:Hello World!

加密後 的字元串為:Obkkh'Phukc&

解密後 的字元串為:Hello World!

Ⅹ php 有哪些可解密的加密演算法

能加密,就自然能解密,只是耗費時間長短而已。
比如,就目前常見的源碼加密方法,zend52、zend53、zend54、zym、phpjiami、phpjm......
都有相應的軟體進行解密。

閱讀全文

與php異或加密解密相關的資料

熱點內容
dvd光碟存儲漢子演算法 瀏覽:756
蘋果郵件無法連接伺服器地址 瀏覽:962
phpffmpeg轉碼 瀏覽:671
長沙好玩的解壓項目 瀏覽:142
專屬學情分析報告是什麼app 瀏覽:564
php工程部署 瀏覽:833
android全屏透明 瀏覽:732
阿里雲伺服器已開通怎麼辦 瀏覽:803
光遇為什麼登錄時伺服器已滿 瀏覽:301
PDF分析 瀏覽:484
h3c光纖全工半全工設置命令 瀏覽:141
公司法pdf下載 瀏覽:381
linuxmarkdown 瀏覽:350
華為手機怎麼多選文件夾 瀏覽:683
如何取消命令方塊指令 瀏覽:349
風翼app為什麼進不去了 瀏覽:778
im4java壓縮圖片 瀏覽:362
數據查詢網站源碼 瀏覽:150
伊克塞爾文檔怎麼進行加密 瀏覽:890
app轉賬是什麼 瀏覽:163