Ⅰ JNLP 後綴文件反編譯
很遺憾, jnlp並不是一個可以被反編譯的java文件,而是一種Java專用的,針對web環境的網路載入協議(或者說,是一種描述如何從網路下載Java文件的配置器)。所以,只要您將其後綴改寫為txt,就可以看到它的內部寫法,完全是明碼描述。
而如果想反編譯此jnlp對應的具體Java應用,那麼,您就必須按照jnlp的描述下載相關的jar或class後,才能進行。
Ⅱ 使用idea編譯器怎麼接受loghub中的數據
ssh 是加密的,基於 SSL 。
telnet 是明碼傳輸的,發送的數據被監聽後不需要解密就能看到內容。
兩個不通用,現在不建議使用 telnet 。
因為現在網路監聽手段十分的發達。而且中間人攻擊也很容易。
Ⅲ dex2jar和apktool的區別
反編譯工具apktool生成程序的源代碼和圖片、XML配置、語言資源等文件,僅將DEX文件反編譯成Smali源碼;XML文件能生成明碼格式。
反編譯工具dex2jar能將DEX文件反編譯成Jar文件,用jd-gui工具打開其生成的*.jar文件,即可看到源碼,並可以全部導出。
用法:
1.將apk文件後綴改成rar,然後解壓,取出其中的classes.dex,放到任意位置;
2.進入cmd,cd到dex2jar所在文件夾,輸入命令dex2jar.bat %classes.dex所在目錄%\class.dex
3. 命令完成後在%class.dex所在目錄%就會生成jar文件
jd_gui:能夠將jar文件反編譯成java代碼
Ⅳ mac64位電腦能編譯32bit的openssl嗎
OpenSSL介紹:OpenSSL是一個強大的安全套接字層密碼庫,囊括主要的密碼演算法、常用的密鑰和證書封裝管理功能及SSL協議,並提供豐富的應用程序供測試或其它目的使用。
SSL是SecureSockets Layer(安全套接層協議)的縮寫,可以在Internet上提供秘密性傳輸。其目標是保證兩個應用間通信的保密性和可靠性,可在伺服器端和用戶端同時實現支持。已經成為Internet上保密通訊的工業標准。
安全套接層協議能使用戶/伺服器應用之間的通信不被攻擊者竊聽,並且始終對伺服器進行認證,還可選擇對用戶進行認證。SSL協議要求建立在可靠的傳輸層協議(TCP)之上。SSL協議的優勢在於它是與應用層協議獨立無關的,高層的應用層協議(例如,HTTP, FTP, TELNET等)能透明地建立於SSL協議之上。SSL協議在應用層協議通信之前就已經完成加密演算法、通信密鑰的協商及伺服器認證工作。在此之後應用層協議所傳送的數據都會被加密,從而保證通信的私密性。
SSL協議提供的安全信道有三個特性:(1)、數據的保密性:信息加密就是把明碼的輸入文件用加密演算法轉換成加密的文件以實現數據的保密。加密的過程需要用到密鑰來加密數據然後在解密。沒有了密鑰,就無法解開加密的數據。數據加密之後,只有密鑰要用一個安全的方法傳送。加密過的數據可以公開地傳送。(2)、數據的完整性:加密也能保證數據的一致性。例如,消息驗證碼(MAC),能夠校驗用戶提供的加密信息,接收者可以用MAC來校驗加密數據,保證數據在傳輸過程中沒有被篡改過。(3)、安全驗證:加密的另外一個用途是用來作為個人的標識,用戶的密鑰可以作為他的安全驗證的標識。SSL是利用公開密鑰的加密技術(RSA)來作為用戶端與伺服器端在傳送機密資料時的加密通訊協定。
OpenSSL採用C語言作為開發語言,這使得OpenSSL具有優秀的跨平台性能。OpenSSL支持linux、Windows、BSD、Mac、VMS等平台。
OpenSSL整個軟體包大概可以分成三個主要的功能部分:SSL協議庫、應用程序以及密碼演算法庫。
OpenSSL對於隨機數的生成和管理也提供了一整套的解決方法和支持API函數。隨機數的好壞是決定一個密鑰是否安全的重要前提。
OpenSSL還提供了其它的一些輔助功能,如從口令生成密鑰的API,證書簽發和管理中的配置文件機制等等。
OpenSSL提供了產生各種公開密鑰對和對稱密鑰的方法、函數和應用程序,同時提供了對公鑰和私鑰的DER編解碼功能。OpenSSL在標准中提供了對私鑰的加密保護功能,使得密鑰可以安全地進行存儲和分發。
OpenSSL一共提供了8種對稱加密演算法,其中7種是分組加密演算法,僅有的一種流加密演算法是RC4.這7種分組加密演算法分別是AES、DES、Blowfish、CAST、IDEA、RC2、RC5,都支持電子密碼本模式(ECB)、加密分組鏈接模式(CBC)、加密反饋模式(CFB)和輸出反饋模式(OFB)四種常用的分組密碼加密模式。其中,AES使用的加密反饋模式(CFB)和輸出反饋模式(OFB)分組長度是128位,其它演算法使用的則是64位。
OpenSSL一共實現了4種非對稱加密演算法,包括DH演算法、RSA演算法DSA演算法和橢圓曲線演算法(EC)。DH演算法一般用於密鑰交換。RSA演算法既可以用於密鑰交換,也可以用於數字簽名。DSA演算法則一般只用於數字簽名。
OpenSSL實現了5種信息摘要演算法,分別是MD2、MD5、MDC2、SHA(SHA1)和RIPEMD。SHA演算法事實上包括了SHA和SHA1兩種信息摘要演算法。此外,OpenSSL還實現了DSS標准中規定的兩種信息摘要演算法DSS和DSS1.
OpenSSL的應用程序主要包括密鑰生成、證書管理、格式轉換、數據加密和簽名、SSL測試以及其它輔助配置功能。
Engine機制目的是為了使OpenSSL能夠透明地使用第三方提供的軟體加密庫或者硬體加密設備進行加密。
更多詳情見請繼續閱讀下一頁的精彩內容: http://www.linuxidc.com/Linux/2014-10/108502p2.htm
OpenSSL在Windows7 64bit + vs2010中win32的編譯步驟:
1. 從https://www.openssl.org/source/下載OpenSSL源代碼 openssl-1.0.1g版本;
2. 從http://www.activestate.com/activeperl/downloads下載ActivePerl5.16.3 x64(ActivePerl為perl的一個腳本解釋器);
3. 將ActivePerl安裝到D:\ProgramFiles\Perl64目錄下,打開命令提示符,將其定位到D:\ProgramFiles\Perl64\eg 目錄下,執行perl example.pl ,若提示Hello fromActivePerl! 則說明Perl安裝成功,可以開始使用Perl的相關命令來進行OpenSSL的安裝了;
4. 將openssl-1.0.1g解壓縮到E:\OpenSSL\openssl-1.0.1g目錄下;
5. 從http://sourceforge.net/projects/nasm/下載nasm 2.07,將其安裝到D:\ProgramFiles\NASM中,並將D:\ProgramFiles\NASM添加到系統環境變數Path中;
6. 將命令提示符定位到E:\OpenSSL\openssl-1.0.1g;
7. 輸入perl Configure VC-WIN32 --perfix=E:\OpenSSL\openssl (將其安裝到E:\OpenSSL\openssl);
8. 輸入ms\do_nasm ;
9. 將命令提示符定位到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin , 然後輸入 vcvars32.bat,會顯示Settingenvironment for using Microsoft Visual Studio 2010 x86 tools. 如果沒有這一步,會提示nmake不是內部或外部命令;
10. 再次將命令提示符定位到E:\OpenSSL\openssl-1.0.1g;
11. 輸入 nmake –f ms\ntdll.mak ;執行完後會在openssl-1.0.1g目錄下生成一個out32dll文件夾,裡麵包含了一些靜態庫、動態庫和.exe文件;
12. 輸入 nmake -f ms\ntdll.mak test ;若最終顯示passed all tests說明生成的庫正確;
13. 輸入 nmake -f ms\ntdll.mak install ;則會在E:\OpenSSL\openssl目錄下生成bin、include、lib、ssl四個文件夾;
14. 以上編譯的是release庫,若編譯debug庫,則將以上第7步中的VC-WIN32改成debug-VC-WIN32即可;
15. 若編譯靜態庫則用ms\nt.mak替換掉上面用到的ms\ntdll.mak即可;
16. 若生成不帶匯編支持的庫,則需將以上第7、8步用perl Configure VC-WIN32 no-asm --prefix=E:\OpenSSL\openssl 和 ms\do_ms替換即可;
17. 在E:\OpenSSL\openssl-1.0.1g\tmp32dll文件夾下包含相應的匯編文件。
在win64下生成相應的庫和匯編文件的編譯步驟:
1. 將命令提示符定位到E:\OpenSSL\openssl-1.0.1g;
2. 輸入 perl Configure VC-WIN64A --perfix=E:\OpenSSL\openssl\win64 ;
3. 輸入 ms\do_nasm ;
4. 輸入 ms\do_win64a ;
5. 將命令提示符定位到C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\amd64 , 然後輸入 vcvars64.bat,會顯示Settingenvironment for using Microsoft Visual Studio 2010 x64 tools. 如果沒有這一步,會提示nmake不是內部或外部命令;
6. 再次將命令提示符定位到E:\OpenSSL\openssl-1.0.1g;
7. 輸入 nmake -f ms\nt.mak ;執行完後會在openssl-1.0.1g目錄下生成out32和tmp32兩個文件夾,out32文件夾中會生成兩個靜態庫和一些執行文件,tmp32文件夾中會生成相應的匯編文件;
8. 輸入 nmake -f ms\nt.mak test ;若最終顯示passed all tests說明生成的庫正確;
9. 輸入 nmake -f ms\nt.mak install ;則會在E:\OpenSSL\openssl\win64目錄下生成bin、include、lib、ssl四個文件夾;
10. 以上編譯的是release庫,若編譯debug庫,則將以上第2步中的VC-WIN64A改成debug-VC-WIN64A即可;
11. 若編譯動態庫則用ms\ntdll.mak替換掉上面用到的ms\nt.mak即可;
12. 若生成不帶匯編支持的庫,則需將以上第2步用perl Configure VC-WIN64A no-asm --prefix=E:\OpenSSL\openssl\win64替換即可;
13. 在E:\OpenSSL\openssl-1.0.1g\tmp32文件夾下包含相應的匯編文件。
Ⅳ gcc編譯器怎麼忽略重復定義
gcc編譯器不可能忽略重復定義,這是明碼標價的錯誤,嚴格禁止的,你想要做什麼,需要重復定義嗎?
Ⅵ 高手幫忙,急求一個php編寫的用戶注冊管理系統,未經zend編譯的,明碼,高分懸賞!
*
* 名稱:cnkknd php login class
* 描述:php用於登錄的類,基於mysql
* 作者:daniel king,[email protected]
* 日期:start@2003/8/25,update@2004/4/16
*/
class login
{
var $appname="login"; //網站名稱
var $username; //用戶名
var $userpass; //密碼
var $authtable="account"; //驗證用數據表
var $col_username="username"; //用戶名欄位
var $col_password="password"; //用戶密碼欄位
var $col_banned="banned"; //是否被禁止欄位
var $use_cookie=true; //使用cookie保存sessionid
var $cookiepath='/'; //cookie路徑
var $cookietime=108000; //cookie有效時間
var $err_mysql="mysql error"; //mysql出錯提示
var $err_auth="username invalid or wrong password"; //用戶名無效提示
var $err_user="user invalid"; //用戶無效提示(被封禁)
var $err; //出錯提示
var $error_report=false; //顯示錯誤
function login($appname="")
{
$this->appname=$appname; //初始化網站名稱
}
function isloggedin() //判斷是否登錄
{
if(isset($_cookie['sid'])) //如果cookie中保存有sid
{
session_id($_cookie['sid']);
session_start();
if($_session['appname']!=$this->appname) return false;
//為了防止不同的程序使用同一個登錄類產生沖突,加了個appname作為區分標記
return true;
}
else //如果cookie中未保存sid,則直接檢查session
{
session_start();
if(isset($_session['appname']))
return true;
}
return false;
}
function userauth($username,$userpass) //用戶認證
{
$this->username=$username;
$this->userpass=$userpass;
$query="select * from `".$this->authtable."` where `".$this->col_username."`='$username';";
$result=mysql_query($query);
if(mysql_num_rows($result)==1) //找到此用戶
{
$row=mysql_fetch_array($result);
if($row['banned']==1) //此用戶被封禁
{
$this->errreport($this->err_user);
$this->err=$this->err_user;
return false;
}
elseif(md5($userpass)==$row[$this->col_password]) //密碼匹配
{
$this->userinfo=$row;
return true;
}
else //密碼不匹配
{
$this->errreport($this->err_auth);
$this->err=$this->err_auth;
return false;
}
}
else //沒有找到此用戶
{
$this->errreport($this->err_auth);
$this->err=$this->err_auth;
return false;
}
}
function setsession() //置session
{
$sid=uniqid('sid'); //生成sid
session_id($sid);
session_start();
$_session['appname']=$this->appname; //保存程序名
$_session['userinfo']=$this->userinfo; //保存用戶信息(表中所有欄位)
if($this->use_cookie) //如果使用cookie保存sid
{
if(!setcookie('sid',$sid,time()+$this->cookietime,$this->cookiepath))
{
$this->errreport("set cookie failed");
$this->err="set cookie failed";
}
}
else
setcookie('sid','',time()-3600); //清除cookie中的sid
}
function userlogout() //用戶注銷
{
session_start();
unset($_session['userinfo']); //清除session中用戶信息
unset($_session['appname']); //清除session中程序名
if(setcookie('sid','',time()-3600)) //清除cookie中的sid
return true;
else
return false;
}
function errreport($str) //報錯
{
if($this->error_report)
echo "error: $str";
}
}
?>
注意一下置session的一段,我是用select *把所有欄位的信息都取出來了,其實沒有必要,很多欄位沒有必要放在session里,大家可以根據需要,在通過驗證之後,修改$類名->userinfo,然後$類名->setssesion()。
放一個例子
<?
include 'header.php';
if(isset($_post[logout]))
{
$login->userlogout();
die('<script>window.location="'.$_post[url].'";</script>');
}
if(isset($_post[login]))
{
if($login->userauth($_post[account],$_post[passwd]))
{
if($_server[php_self]!='attachment') $login->setsession();
die('<script>window.location="'.$_post[url].'";</script>');
}
echo ($login->err);
}
if(!$login->isloggedin()) echo '<form method=post action=login.php><input name=account><input type=password name=passwd><input type=submit name=login></form>';
?>
我這個裡面的$_post[url]一般是可以用$_server["http_referer"]取得的,但是有時候因為客戶端裝了諾頓的個人防火牆,$_server["http_referer"]就沒用了。
header.php裡面關於login的一段
include_once 'inc/classlogin.php';
$login=new login();
$login->sitename='uu';
$login->authtable='u_account';
$login->col_username='account';
$isloggedin=$login->isloggedin();
Ⅶ 設計一個(15,11)系統漢明碼的生成矩陣G,再設計一個由g(x)=1+x+x^4 生成的(15,11)循環漢明碼的編譯器。
x15 + 1 = g(x)h(x):
h(x) = x11 + x8 + x7 + x5 +x3+ x2 + x + 1
例:已知 (7,3) 循環碼的g(x)=x 4 +x 3 +x 2 +1,試求其標准生成陣,一致校驗陣及全部 碼字 。 舉例:求 (7,3) 循環碼的生成 多項式 。
解: v分解多項式 x7 +1,取其 4 次因式作生成多項式 vx7+1= ( x +1) ( x 3 + x 2 +1) ( x 3 + x +1) v 可將一次和任一個三次因式的乘積作為生成多項式,因而可取 g 1 ( x )= ( x +1) ( x 3 + x 2 +1) = x 4 + x 2 + x +1 或 g 2 ( x )= ( x +1) ( x 3 + x +1) = x 4 + x 3 + x 2 +1。
(7)明碼編譯擴展閱讀:
給出(7,4)循環碼,由於循環碼是線性分組碼的一種,所以它也具有封閉性,任意兩個碼字相加之和必是另一碼字。所以它的最小碼距也就是非零碼字的最小碼重。
在表1給出的(7,4)循環碼中,dmin=3。而且根據定義,任一碼字的每一循環移位的結果都是(7,4)循環碼的一個碼字。但某一碼字的循環移位,並不能生成所有的碼字。對於一個循環碼來說,可以同時存在多個循環圈。
Ⅷ 學嵌入式必須會自己獨立移植和編譯U-boot,Linux內核,自己獨立建立交叉編譯工具是嗎
其實所謂嵌入式算是一個比較廣泛的概念,並非單純指用Linux系統來構造。
造成大家認為嵌入式就是Linux這樣的誤解,
是因為很多培訓機構往往不是專業出身,只能把嵌入式拿來當做概念炒作。
做嵌入式Linux產品的話,有三個層級的開發種類:
a,Linux應用層開發;
b,嵌入式Linux系統構建;
c,嵌入式Linux產品設備驅動開發;
你所說的移植和編譯U-boot,Linux內核,自己獨立建立交叉編譯工具等等
都是歸納到上面b類中去的重點。對做a/c類的人來說,並非一定需要。
現在很多培訓機構,交個一萬三四千塊的錢,學個四五個月,最終學到的
知識,也只能是a類的大部分,b類的很少部分,c類的蜻蜓點水。從性價比
來說,非常非常的不劃算。
杭州巨立安技術(JulianTec)是杭州市場上唯一由資深研發工程師所發起
設立的機構。由於自身的專業出身,所以我們能夠把上面三類課程安排到獨立
的三個不同階段裡面去,分開進行教學與收費。這么做有幾點好處:
1,能夠讓不同專業背景的同學找到不同的切入點進行學習;
2,相比其他眉毛鬍子一把抓式的、純商業的、非專業出身的培訓機構來說,這樣
的安排更趨合理與實在;
3,花個四五個月的時間,交上一萬三四,最終感覺只能學到應用層的東西;那是
非常非常的不劃算,其實單單學習應用層開發,不需要你花那麼多時間,也不需要
你花那麼多金錢。
杭州巨立安(JulianTec)和其他機構所不同的是,什麼時候上什麼內容,需要多少
時間,需要繳多少學費等等都是訂好的,就類似於商場售貨時的明碼標價。不像其他
機構那樣喊著大大的口號,卻讓你只接受最基礎知識的學習。