• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
  • 用開源實現Solaris到Server2008的加密

    發表于:2008-06-11來源:作者:點擊數: 標簽:開源Solaris
    一、跨平臺技術簡介 在 java 之前,跨平臺是很痛苦的事情,主要是因為所有對于系統的調用,在不同的操作系統下結果都不一樣,簡單的來說,int的長度在不同操作系統里面就不一樣,甚至于連字節排列的順序都不同。調用同一個函數返回的格式也不同,因此,寫程序
    一、跨平臺技術簡介

      在java之前,跨平臺是很痛苦的事情,主要是因為所有對于系統的調用,在不同的操作系統下結果都不一樣,簡單的來說,int的長度在不同操作系統里面就不一樣,甚至于連字節排列的順序都不同。調用同一個函數返回的格式也不同,因此,寫程序的人自己要對不同的系統非常了解,如果真的需要對不同操作系統進行兼容,要在程序里面寫很多if,編譯的時候要先判斷使用的操作系統,創造很多環境變量才能編譯,而且編譯好的二進制可執行文件只能在本系統上運行。如果你寫的是個功能庫供別人調用的,那么光對操作系統的判斷就占了代碼的絕大部分,而且,還要你在不同平臺下進行測試,這可是個艱苦卓絕的工作。建議你有空可以看看apachehttpd服務器的源代碼就知道了。自從有了java之后,就把操作系統兼容的工作丟給了jvm了,對于程序員來說就再也不要關心int有幾位,還有高位在前還是地位在前的問題了,你只要用java的代碼把你程序的邏輯實現出來就可以了,這些兼容的問題就交給jvm去處理吧。這樣,如果你寫一個程序交付給客戶使用,如果客戶的環境是運行AIX的,你就不需要在本地也裝一個AIX來開發和運行,你可以在windows上完成所有的開發,然后把編譯好的文件交給客戶就可以了,以后有別的客戶需要在Solaris上運行這個程序,你都不用修改,直接拿過去就可以運行,這難道不是一種方便嗎?只有被跨平臺開發折磨過的人才能更深得體會到用java開發跨平臺應用的優勢。

      二、密碼技術簡介

      使消息保密的技術和科學叫做密碼編碼學,從事此行的人叫密碼編碼者。破譯密文的技術和科學就是密碼分析學,從事此行的人是密碼分析者。作為數學的一個分支的密碼學包括密碼編碼學和密碼分析學,精于此道的人稱為密碼學家,現代的密碼學家通常也是理論數學家。

      密碼學要實現的基本功能

      數據加密的基本思想是通過變換信息的表示形式來偽裝需要保護的敏感信息,使非授權者不能了解被保護信息的內容。網絡安全使用密碼學來輔助完成在傳遞敏感信息時的相關問題,主要包括以下幾個方面。

      1.機密性(confidentiality)

      僅有發送方和指定的接收方能夠理解傳輸的報文內容。竊聽者可以截取到加密了的報文,但不能還原出原來的信息,及不能知道報文內容。

      2.鑒別(authentication)

      發送方和接收方都應該能證實通信過程所涉及的另一方確實具有他們所聲稱的身份,即第三者不能冒充跟你通信的對方。

      3.報文完整性(messageintergrity)

      即使發送方和接收方可以互相鑒別對方,但他們還需要確保其通信的內容在傳輸過程中未被改變。

      4.不可否認性(non-repudiation)

      如果我們收到通信對方的報文后,還要證實報文確實來自所宣稱的發送方,發送者事后不可能虛假地否認他發送的消息。這些功能是通過計算機進行社會交流至關重要的需求,就像面對面交流一樣。某人是否就是他說的人;某人的身份證明文件(駕駛執照、醫學學歷或者護照)是否有效;聲稱從某人那里來的文件是否確實從那個人那里來的;這些事情都是通過鑒別、完整性和抗抵賴來實現的。

      加密算法術語

      明文:即原始的或未加密的數據。通過加密算法對其進行加密,加密算法的輸入信息為明文和密鑰。

      密文:明文加密后的格式,是加密算法的輸出信息。加密算法是公開的,而密鑰則是不公開的。密文不應理解為無密鑰,它用于數據的存儲以及傳輸。

      明文用M(消息)或P(明文)表示,它可能是比特流(文本文件、位圖、數字化的語音流或數字化的視頻圖像)。對計算機而言,P是簡單的二進制數據。明文可被傳送或存儲,無論在哪種情況,M指待加密的消息。密文用C表示,它也是二進制數據,有時和M一樣大,有時稍大(通過壓縮和加密的結合,C有可能比P小些。然而,單單加密通常達不到這一點)。加密函數E作用于M得到密文C,用數學表示為:

      E(M)=C

      相反地,解密函數D作用于C產生M。D(C)=M。先加密后再解密消息,原始的明文將恢復出來,下面的等式必須成立:

      D(E(M))=M

      另外要明確的概念是算法和密鑰。密碼算法也叫密碼,是用于加密和解密的數學函數(通常情況下,有兩個相關的函數:一個用作加密,另一個用作解密)。

      三、使用java語言的加密解密工具WizCrypt

      無論是在Linux還是Windows操作系統平臺,商用或免費的加密軟件非常多。但同時在Linux和Windows中,都能快速地、自由地實現加解密的開源軟件就不多見。下面就介紹如何快速實現跨平臺的文件加解密。本文介紹的工具WizCrypt是使用java語言編寫的所以可以通過安裝Java虛擬機跨平臺使用。WizCrypt加密解密原理和流程如圖1 圖1 是WizCrypt加密的流程

      1. 首先WizCrypt是基于命令行的,通過密碼文件對原文件進行加密,使用md5加密算法。

      2. 加密文件的前16位字節包括MD5的 hash值。

      3. 然后利用用戶輸入新的密碼進行RC4算法加密并且輸出。

      WizCrypt的解密的流程:

      1. 用戶提供的MD5的 hash值首先進行計算。

      2. 把hash值和加密文件的前16位字節進行比對。

      3. 如果兩者相同,則進行解密;否則提示用戶并且自動退出。

    原文轉自:http://www.kjueaiud.com

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>