當前位置:首頁 » 操作系統 » base64源碼

base64源碼

發布時間: 2024-09-16 20:17:09

Ⅰ 求java加密源代碼(MD5,base64)

import java.security.*;
import javax.crypto.*;

/**
* 本例解釋如何利用DES私鑰加密演算法加解密
*
* @author Devon
* @version 1.0 04/03/10
*/
public class SingleKeyExample {

public static void main(String[] args) {
try {
String algorithm = "DES"; //定義加密演算法,可用 DES,DESede,Blowfish
String message = "Hello World. 這是待加密的信息";

// 生成個DES密鑰
KeyGenerator keyGenerator = KeyGenerator.getInstance(algorithm);
keyGenerator.init(56); //選擇DES演算法,密鑰長度必須為56位
Key key = keyGenerator.generateKey(); //生成密鑰

// 生成Cipher對象
Cipher cipher = Cipher.getInstance("DES");

//用密鑰加密明文(message),生成密文(cipherText)
cipher.init(Cipher.ENCRYPT_MODE, key); //操作模式為加密(Cipher.ENCRYPT_MODE),key為密鑰
byte[] cipherText = cipher.doFinal(message.getBytes()); //得到加密後的位元組數組
System.out.println("加密後的信息: " + new String(cipherText));

//用密鑰加密明文(plainText),生成密文(cipherByte)
cipher.init(Cipher.DECRYPT_MODE, key); //操作模式為解密,key為密鑰
byte[] sourceText = cipher.doFinal(cipherText); //獲得解密後位元組數組
System.out.println("解密後的信息: " + new String(sourceText));
} catch (Exception ex) {
ex.printStackTrace();
}
}

}

/**
* @author Devon
*/

import java.security.*;
import java.security.spec.*;
import javax.crypto.*;

public class PairKeyExample {

public static void main(String argv[]) {
try {
String algorithm = "RSA"; //定義加密演算法,可用 DES,DESede,Blowfish
String message = "張三,你好,我是李四";

//產生張三的密鑰對(keyPairZhang)
KeyPairGenerator keyGeneratorZhang =
KeyPairGenerator.getInstance(algorithm); //指定採用的演算法
keyGeneratorZhang.initialize(1024); //指定密鑰長度為1024位
KeyPair keyPairZhang = keyGeneratorZhang.generateKeyPair(); //產生密鑰對
System.out.println("生成張三的公鑰對");

// 張三生成公鑰(publicKeyZhang)並發送給李四,這里發送的是公鑰的數組位元組
byte[] publicKeyZhangEncode = keyPairZhang.getPublic().getEncoded();

//通過網路或磁碟等方式,把公鑰編碼傳送給李四
//李四接收到張三編碼後的公鑰,將其解碼
KeyFactory keyFacoryLi = KeyFactory.getInstance(algorithm); //得到KeyFactory對象
X509EncodedKeySpec x509KeySpec =
new X509EncodedKeySpec(publicKeyZhangEncode); //公鑰採用X.509編碼
PublicKey publicKeyZhang = keyFacoryLi.generatePublic(x509KeySpec); //將公鑰的KeySpec對象轉換為公鑰
System.out.println("李四成功解碼,得到張三的公鑰");

//李四用張三的公鑰加密信息,並發送給李四
Cipher cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding"); //得到Cipher對象
cipher.init(Cipher.ENCRYPT_MODE, publicKeyZhang); //用張三的公鑰初始化Cipher對象
byte[] cipherMessage = cipher.doFinal(message.getBytes()); //得到加密信息
System.out.println("加密後信息:" + new String(cipherMessage));
System.out.println("加密完成,發送給李四...");

//張三用自己的私鑰解密從李四處收到的信息
cipher.init(Cipher.DECRYPT_MODE, keyPairZhang.getPrivate()); //張三用其私鑰初始化Cipher對象
byte[] originalMessage = cipher.doFinal(cipherMessage); //得到解密後信息
System.out.println("張三收到信息,解密後為:" + new String(originalMessage));
} catch (Exception ex) {
ex.printStackTrace();
}
}
}

Ⅱ base64_decode(" 解密

無聊呀,老是看見有無聊的人用php來加密。

其實PHP是無法加密的,只要把eval替換為exit,運行一次就能看見源代碼,不過現在無聊的人都很變態,比如這個代碼就被反復「加密」了20次~

「解密」後的代碼如下:

<?php
/* please do not edit anything here */
include("footer_content.php");

echo '<div id="foot" style="background-image:url('.get_bloginfo('template_directory').'/images/footer_.gif);height:28px;display:block;color:#888888;text-align:center;padding-top:15px;">

<div class="onethousand_wrap">

<a href="">Zionn</a> designed by <a title="ZENVERSE Premium Themes" href="">ZENVERSE</a> | In conjunction with <a href="">Reseller Hosting</a> from the #1 <a href="">Web Hosting Provider</a> - HostNexus.

</div>

</div>';

$zenverse_global_google_analytics = get_option('zenverse_global_google_analytics');
if ($zenverse_global_google_analytics != '')

wp_footer();

echo '</body></html>';

?>

Ⅲ 求解密<php $_F=__FILE__;$_X=' 源碼已貼出

首先解密eval(base64_decode('=='));

結果為:

eval('$_X=base64_decode($_X);$_X=strtr($_X,'123456aouie','aouie123456');$_R=ereg_replace('__FILE__',"'".$_F."'",$_X);eval($_R);$_R=0;$_X=0;')

運行上述代碼

$_X=base64_decode($_X);//執行後$_X的值為

?><d4vcl1ss="cl51r"></d4v>
<d4v4d="f22t5r">
<d4v4d="f22t5rm14n">
<14d="f22t5rl2g2"hr5f="<?phpbl2g4nf2('3rl');?>"t4tl5="<?phpbl2g4nf2('n1m5');?>"></1>
<?php5ch2str4psl1sh5s(g5t_2pt42n('cr55k22_f22t5rl4nkc2d5'));?></br><?php5ch2c2m4cpr5ss_c2pyr4ght();?><1hr5f="<?php5ch2h2m5_3rl('/')?>"t4tl5="<?php5ch25sc_1ttr(g5t_bl2g4nf2('n1m5','d4spl1y'));?>"r5l="h2m5"t1rg5t="_bl1nk"><?php5ch25sc_1ttr(g5t_bl2g4nf2('n1m5','d4spl1y'));?></1>-P2w5r5dby<1hr5f="http://www.w2rdpr5ss.2rg/"r5l="n2f2ll2w"t1rg5t="_bl1nk">W2rdPr5ss</1>1nd<1hr5f="http://www.cr55k22.c2m/"t1rg5t="_bl1nk">Cr55K22</1><?php4f(g5t_2pt42n('cr55k22_b541n')=='D4spl1y'){?>-<?php5ch2str4psl1sh5s(g5t_2pt42n('cr55k22_b541nh12'));?><?php}5ls5{}?><?php4f(g5t_2pt42n('cr55k22_tj')=='D4spl1y'){?>-<?php5ch2str4psl1sh5s(g5t_2pt42n('cr55k22_tjc2d5'));?><?php}5ls5{}?>
</d4v>
</d4v>
<?phpwp_f22t5r();?>
<scr4pttyp5="t5xt/j1v1scr4pt"src="<?phpbl2g4nf2('t5mpl1t5_d4r5ct2ry');?>/c2mm5nts-1j1x.js"></scr4pt>
<scr4pttyp5="t5xt/j1v1scr4pt"src="<?phpbl2g4nf2('t5mpl1t5_d4r5ct2ry');?>/cr55k22.m4n.js?v6.o"></scr4pt>
</b2dy>
</html>

$_X=strtr($_X,'123456aouie','aouie123456');//執行後$_X的值為

?><divclass="clear"></div>
<divid="footer">
<divid="footermain">
<aid="footerlogo"href="<?phpbloginfo('url');?>"title="<?phpbloginfo('name');?>"></a>
<?phpechostripslashes(get_option('creekoo_footerlinkcode'));?></br><?phpechocomicpress_right();?><ahref="<?phpechohome_url('/')?>"title="<?phpechoesc_attr(get_bloginfo('name','display'));?>"rel="home"target="_blank"><?phpechoesc_attr(get_bloginfo('name','display'));?></a>-Poweredby<ahref="http://www.wordpress.org/"rel="nofollow"target="_blank">WordPress</a>and<ahref="http://www.creekoo.com/"target="_blank">CreeKoo</a><?phpif(get_option('creekoo_beian')=='Display'){?>-<?phpechostripslashes(get_option('creekoo_beianhao'));?><?php}else{}?><?phpif(get_option('creekoo_tj')=='Display'){?>-<?phpechostripslashes(get_option('creekoo_tjcode'));?><?php}else{}?>
</div>
</div>
<?phpwp_footer();?>
<scripttype="text/javascript"src="<?phpbloginfo('template_directory');?>/comments-ajax.js"></script>
<scripttype="text/javascript"src="<?phpbloginfo('template_directory');?>/creekoo.min.js?v1.3"></script>
</body>

$_R=ereg_replace('__FILE__',"'".$_F."'",$_X);//將$_X中的字元串__FILE__替換為當前文件的路徑,並用單引號引起來,原字元串並無可替換內容,故不變

eval($_R);//將上述替換後的內容執行

$_R=0;

$_X=0;

加密的代碼等價於如下代碼

<divclass="clear"></div>
<divid="footer">
<divid="footermain">
<aid="footerlogo"href="<?phpbloginfo('url');?>"title="<?phpbloginfo('name');?>"></a>
<?phpechostripslashes(get_option('creekoo_footerlinkcode'));?></br><?phpechocomicpress_right();?><ahref="<?phpechohome_url('/')?>"title="<?phpechoesc_attr(get_bloginfo('name','display'));?>"rel="home"target="_blank"><?phpechoesc_attr(get_bloginfo('name','display'));?></a>-Poweredby<ahref="http://www.wordpress.org/"rel="nofollow"target="_blank">WordPress</a>and<ahref="http://www.creekoo.com/"target="_blank">CreeKoo</a><?phpif(get_option('creekoo_beian')=='Display'){?>-<?phpechostripslashes(get_option('creekoo_beianhao'));?><?php}else{}?><?phpif(get_option('creekoo_tj')=='Display'){?>-<?phpechostripslashes(get_option('creekoo_tjcode'));?><?php}else{}?>
</div>
</div>
<?phpwp_footer();?>
<scripttype="text/javascript"src="<?phpbloginfo('template_directory');?>/comments-ajax.js"></script>
<scripttype="text/javascript"src="<?phpbloginfo('template_directory');?>/creekoo.min.js?v1.3"></script>
</body>

Ⅳ php源碼怎麼加密

一、無需任何PHP擴展的加密

此類加密的代表有 威盾PHP加密專家、PHP在線加密平台、PHP神盾 等。

此類加密都是以eval函數為核心,輔以各式各樣的字元串混淆和各種小技巧,來達到加密目的(更准確的說,應該算是混淆)。下面以一個簡單的hello world為例來說明此類加密的大體過程。

<?php

echo "hello world";

首先 ,我們把這段代碼變為通過eval執行的

<?php

eval('echo "hello world";');

然後 ,我們再進行一些轉換,比如說base64編碼

<?php

eval(base64_decode('ZWNobyAiaGVsbG8gd29ybGQiOw=='));

就這樣子,我們的第一個加密過的php代碼新鮮出爐了。。。

上面這個例子非常非常簡單,基本上任何有一點php語言基礎甚至別的語言基礎的人都能輕松的看懂並解密。因此,我們需要一些方法讓這個加密至少看上去不是那麼簡單。

二、同時採用多種編碼函數

除了剛才提到的base64,php還有許多內置的編碼函數,例如urlencode、gzcompress等。把這些函數混合使用可以提高解密的復雜度(不是難度),此外還可以使用strtr來制定自己的編碼規則。 使用變數來代替函數名 使用特定字元來命名變數

這兒所說的特定字元是一些極其相似的字元,如I和1,0和O。試想一下滿屏都是O和0組成的變數,並且每一個的名字長度都在10個字元以上。。。 判斷文件自身是否被修改

這個功能看似容易,對文件做一下摘要再進行下對比即可知道是否被修改了,但是如何才能在文件內把摘要嵌入進去呢?我沒有找到完美的方案,但一個變通的方案還是很容易的。。。

<?php

$code = substr(file_get_contents(__FILE__), 0, -32);

$hash = substr(file_get_contents(__FILE__), -32);

if (md5($code) !== $hash) {

exit('file edited');

}

當然,你可以把這個校驗字元串放在別的位置來提高破解的難度。有了這個,別人想破解你的程序可就得多費一點功夫了。。。

既然知道了原理,那解密自然也就非常簡單了,總體來說就三步:

把eval替換為輸出,比如echo 根據編碼規則把字元串還原 如果文件未解密完全,從第一步開始繼續

當然,實際上的解密過程並沒有這么簡單,比如說如果加密的時候使用了gzcompress,那得到的數據將會包含一些二進制數據,而採用一般的文本編輯器打開時這些數據都會顯示為亂碼,並且在保存時丟失部分數據。解決方法很簡單也很麻煩,那就是使用二進制(16進制)方式打開、修改和保存。

Ⅳ 跪求一份e4a 中文編程Base64加密和jie密源碼

代碼是我自己寫的!水平有限,反正功能實現了。原來是迅雷鏈接轉換的函數,已經修改為Base64加密了,可以直接用,解密的沒有。。。需要的話參照易語言的修改吧。。。以下為函數:
函數 迅雷編碼(原文本 為 文本型) 為 文本型
變數 原文 為 位元組型()
變數 余數 為 整數型
變數 三位元組數據 為 位元組型(3)
變數 碼表 為 位元組型(64)
變數 len_x 為 整數型
變數 len_y 為 整數型
變數 i 為 整數型
變數 k 為 整數型
變數 結果 為 位元組型()
變數 原文擴充 為 位元組型(1)
變數 結果擴充 為 位元組型(1)
'原文本 = "AA" & 原文本 & "ZZ"
原文 = 文本到位元組(原文本 ,"GBK")
原文擴充(0) = 0
結果擴充(0) = 61
len_x = 取位元組集長度 (原文)
余數 = len_x % 3
如果 (余數 = 1) 則
原文 = 合並位元組集(原文 , 原文擴充)
原文 = 合並位元組集(原文 , 原文擴充)
len_x = len_x + 2
否則如果 (余數 = 2) 則
原文 = 合並位元組集(原文 , 原文擴充)
len_x = len_x + 1
結束 如果
len_y = len_x * 4 / 3
i = 1
碼表(0) = 65
碼表(1) = 66
碼表(2) = 67
碼表(3) = 68
碼表(4) = 69
碼表(5) = 70
碼表(6) = 71
碼表(7) = 72
碼表(8) = 73
碼表(9) = 74
碼表(10) = 75
碼表(11) = 76
碼表(12) = 77
碼表(13) = 78
碼表(14) = 79
碼表(15) = 80
碼表(16) = 81
碼表(17) = 82
碼表(18) = 83
碼表(19) = 84
碼表(20) = 85
碼表(21) = 86
碼表(22) = 87
碼表(23) = 88
碼表(24) = 89
碼表(25) = 90
碼表(26) = 97
碼表(27) = 98
碼表(28) = 99
碼表(29) = 100
碼表(30) = 101
碼表(31) = 102
碼表(32) = 103
碼表(33) = 104
碼表(34) = 105
碼表(35) = 106
碼表(36) = 107
碼表(37) = 108
碼表(38) = 109
碼表(39) = 110
碼表(40) = 111
碼表(41) = 112
碼表(42) = 113
碼表(43) = 114
碼表(44) = 115
碼表(45) = 116
碼表(46) = 117
碼表(47) = 118
碼表(48) = 119
碼表(49) = 120
碼表(50) = 121
碼表(51) = 122
碼表(52) = 48
碼表(53) = 49
碼表(54) = 50
碼表(55) = 51
碼表(56) = 52
碼表(57) = 53
碼表(58) = 54
碼表(59) = 55
碼表(60) = 56
碼表(61) = 57
碼表(62) = 43
碼表(63) = 47
三位元組數據 (0) = 1
三位元組數據 (1) = 2
三位元組數據 (2) = 3
k = 0
判斷循環首 k < len_y
結果 = 合並位元組集(結果 , 結果擴充)
k = k + 1
判斷循環尾
變數循環首 k = 1 至 len_x 步進 3
三位元組數據 (1 - 1) = 原文 (k - 1)
三位元組數據 (2 - 1) = 原文 (k + 1 - 1)
三位元組數據 (3 - 1) = 原文 (k + 2 - 1)
結果 (i - 1) = 碼表 (位右移 (三位元組數據 (1 - 1), 2) + 1 - 1)
結果 (i + 1 - 1) = 碼表 (位左移 (位與 (三位元組數據 (1 - 1), 3), 4) + 位右移 (三位元組數據 (2 - 1), 4) + 1 - 1)
結果 (i + 2 - 1) = 碼表 (位左移 (位與 (三位元組數據 (2 - 1), 15), 2) + 位右移 (三位元組數據 (3 - 1), 6) + 1 - 1)
結果 (i + 3 - 1) = 碼表 (位與 (三位元組數據 (3 - 1), 63) + 1 - 1)
i = i + 4
變數循環尾
如果 (余數 = 1) 則
結果 (len_y - 1) = 61
結果 (len_y - 2) = 61
否則如果 (余數 = 2) 則
結果 (len_y - 1) = 61
結束 如果
'迅雷編碼 = "

熱點內容
資料庫時區 發布:2024-11-24 18:28:30 瀏覽:613
板的塑性演算法 發布:2024-11-24 18:17:59 瀏覽:28
酷狗緩存亂碼 發布:2024-11-24 18:12:42 瀏覽:508
aes演算法模式 發布:2024-11-24 17:47:19 瀏覽:611
linux查看埠是否佔用 發布:2024-11-24 17:42:15 瀏覽:466
手機電影天堂的文件夾 發布:2024-11-24 17:39:08 瀏覽:689
吉林金稅盤安全伺服器地址 發布:2024-11-24 17:39:00 瀏覽:276
360無法訪問網路 發布:2024-11-24 17:32:48 瀏覽:558
普通員工解壓拓展注意什麼細節 發布:2024-11-24 17:32:06 瀏覽:435
安裝密碼鎖為什麼要在裡面纏膠帶 發布:2024-11-24 17:27:59 瀏覽:981