開源加密庫
① 加解密除了DES AES還有那些演算法,哪裡能下載到c,c++的加密解密演算法源代碼謝謝啊。
RSA,DSA等等,演算法很多。
源代碼建議你使用成熟的開源庫,如:
OpenSSL http://www.openssl.org/
crypto++ http://www.cryptopp.com/
不知道你的需求,可能後者更能滿足你的需要。
② 除了proguard還有免費的java混淆器嗎
我們做java開發的一般都會遇到如何保護我們開發的代碼問題。java語言由於是基於jvm上面,所以反編譯class文件很很容易。假如我們做了一個web程序,並把這個web程序發布給客戶。實際上,客戶是很容易反編譯出我們的源代碼出來,包括所有的src文件和jsp文件等等。
那麼,如何保護我們的源代碼,實際上,應該有幾種方法可以使用:1、使用代碼混淆器 2、重載應用伺服器的classloader
對於第一種方法來說,現在外面有很多開源工具可以使用,個人認為最好用的當屬proguard莫屬。proguard主要是易用易學。而且提供的功能也挺多。下面是個人一點使用心得
(1)、從網上download proguard工具,proguard工具主要包含是幾個jar文件和一些example,下載地址http://proguard.sourceforge.net/
(2)、將裡面的幾個jar文件添加到類路徑下面。當然,也可以不添加,但是下面在做混淆的時候,必須指定classpath,使在做混淆的過程中,能否訪問該類
(3)、編寫一個配置文件,主要是混淆器的一些參數。比如,下面是一個例子
-injars platform.jar
-outjars platform_out.jar
-libraryjars <java.home>/lib/rt.jar
-libraryjars ibatis-common-2.jar
-libraryjars ibatis--2.jar
-libraryjars ibatis-sqlmap-2.jar
-libraryjars junit-3.8.1.jar
-libraryjars d:/j2ee.jar
-libraryjars struts.jar
-libraryjars commons-lang.jar
-libraryjars D:/0working/coreproject/byislib/jasperreports-0.6.1.jar
-libraryjars commons-beanutils.jar
-printmapping proguard.map
-overloadaggressively
-defaultpackage ''
-allowaccessmodification
-dontoptimize
-keep public class *
{
public protected *;
}
-keep public class org.**
-keep public class it.**
各個參數的含義參考proguard文檔,該文檔非常詳細,上手很容易
OK,到此就完成了代碼混淆,打開產生的jar包可以看到,多了好多a、b、c之類的類文件。說明混淆結果已經成功。將原jar刪除、運行產生的混淆jar包,一切正常!
常見問題:使用過程中個人遇到了幾個問題,開始也是找了很久才解決
a. 內存溢出異常: 主要是proguard在做混淆的時候,吃了很多內存,因此,在運行混淆器的時候,可以增加內存,比如 java -mx512m .....
b.棧溢出異常: 主要是proguard在做混淆的時候,會對一些代碼進行優化,若遇到一些相對復雜的方法時,可能會拋出此異常。對付的辦法是增加配置參數-dontoptimize,如上面的配置例子所示
對於第二種方法,重載伺服器的classloader的原理是這樣。 首先我們通過一定演算法把class文件加密; 然後寫我們自己的classloader,替換伺服器的classloader。 這樣,我們可以讀取class文件,通過我們自己的演算法反加密成正確的class,然後再次進行load。這個方式還沒應用起來,這幾天個人正在研究,有什麼新成果會在此做一些總結。
ProGuard是一個開源的項目,主頁:http://proguard.sourceforge.net/,目前最新的版本是3.3.2.。載入混淆器是非常簡單的,只需要解壓縮proguard3.3.2.zip,然後在 J2ME->Packing->Obfuscation 標簽中選擇 Proguard 的安裝目錄。如下圖所示,在這里可以對需要在混淆過程中保留的類名進行配置,MIDlet 類的名稱必須保留,以便設備的 Java 運行時環境(JRE)能夠找到執行的入口點。
http://images.csdn.net/20050726/image027.jpg,It』s about the above pic.
另一篇文檔
ProGuard是一款免費的Java類文件壓縮器、優化器和混淆器。它能發現並刪除無用類、欄位(field)、方法和屬性值(attribute)。它也能優化位元組碼並刪除無用的指令。最後,它使用簡單無意義的名字來重命名你的類名、欄位名和方法名。經過以上操作的jar文件會變得更小,並很難進行逆向工程。這里提到了ProGuard的主要功能是壓縮、優化和混淆,下面我就先介紹一下這些概念,然後再介紹ProGuard的基本使用方法。
l 什麼是壓縮:
Java源代碼(.java文件)通常被編譯為位元組碼(.class文件)。而完整的程序或程序庫通常被壓縮和發布成Java文檔(.jar文件)。位元組碼比Java源文件更簡潔,但是它仍然包含大量的無用代碼,尤其它是一個程序庫的時候。ProGuard的壓縮程序操作能分析位元組碼,並刪除無用的類、欄位和方法。程序只保留功能上的等價,包括異常堆棧描述所需要的信息。
l 什麼是混淆:
通常情況下,編譯後的位元組碼仍然包含了大量的調試信息:源文件名,行號,欄位名,方法名,參數名,變數名等等。這些信息使得它很容易被反編譯和通過逆向工程獲得完整的程序。有時,這是令人厭惡的。例如像ProGuard這樣的混淆器就能刪除這些調試信息,並用無意義的字元序列來替換所有名字,使得它很難進行逆向工程,它進一步免費的精簡代碼。除了異常堆棧信息所需要的類名,方法名和行號外,程序只會保留功能上的等價。通過以上的了解,你應該明白為什麼需要混淆了。
l ProGuard支持那些種類的優化:
除了在壓縮操作刪除的無用類,欄位和方法外,ProGuard也能在位元組碼級提供性能優化,內部方法有:
² 常量表達式求值
² 刪除不必要的欄位存取
² 刪除不必要的方法調用
² 刪除不必要的分支
² 刪除不必要的比較和instanceof驗證
² 刪除未使用的代碼
² 刪除只寫欄位
² 刪除未使用的方法參數
² 像push/pop簡化一樣的各種各樣的peephole優化
² 在可能的情況下為類添加static和final修飾符
² 在可能的情況下為方法添加private, static和final修飾符
² 在可能的情況下使get/set方法成為內聯的
² 當介面只有一個實現類的時候,就取代它
² 選擇性的刪除日誌代碼
實際的優化效果是依賴於你的代碼和執行代碼的虛擬機的。簡單的虛擬機比有復雜JIT編譯器的高級虛擬機更有效。無論如何,你的位元組碼會變得更小。
仍有一些明顯需要優化的技術不被支持:
² 使非final的常量欄位成為內聯
² 像get/set方法一樣使其他方法成為內聯
² 將常量表達式移到循環之外
² Optimizations that require escape analysis
ProGuard是一個命令行工具,並提供了圖形化用戶界面,它也可以結合Ant或J2ME Wireless Toolkit使用。通過ProGuard得到的更精簡的jar文件意味著只需要更小的存儲空間;網路傳輸更省時;裝載速度更快和佔用更小的內存空間。另外,ProGuard非常快速和高效,它僅僅只花費幾秒鍾和幾兆的內存在處理程序。它處理的順序是先壓縮,然後優化,最後才進行混淆。The results section presents actual figures for a number of applications.與其他Java混淆器相比,ProGuard的主要優勢可能是它的基於模版文件的簡單配置。一些直觀的命令行選項或一個簡單的配置文件已經足夠了。例如,下面的配置選項保護了jar文件里的所有applets:
-keep public class * extends java.applet.Applet
用戶指南里說明了所有可用的選項,並以大量的例子為你演示這些功能強大的配置選項。
上面談到了ProGuard的很多好處,現在我們就來看看如何在程序中使用ProGuard吧,之前也提到了ProGuard可以用命令行、圖形界面、Ant等來執行和處理程序,同時也提到了配置文件,下面我們一起來看如何使用:
用命令行執行ProGuard的命令如下:
java –jar proguard.jar options……
具體的選項可以參考ProGuard的用戶指南,你也可以把這些屬性寫在配置文件里;運行時,我們只需要指定這個配置文件就行了,例如:
java –jar proguard.jar @config.pro
而配置文件的格式也是要按照ProGuard提供的格式來寫的,這個可以參考ProGuard例子里的配置文件來配置適合你的應用系統的ProGuard配置文件。ProGuard提供了圖形界面的配置和運行程序,你可以在界面上配置你想要的參數,然後運行即可。前面提到的要手動寫的配置文件也可以用圖形界面來配置和生成。
如果你要在Ant里運行ProGuard,只需要添加一一個如下的target即可:
<target name="proguard" depends="init">
<taskdef resource="proguard/ant/task.properties" classpath="${lib.dir}/proguard/proguard.jar" />
<proguard configuration="${src.dir}/config.pro" />
</target>
你只需要制定lib.dir和src.dir屬性就行了,同樣的,這里也用了proguard配置文件,跟上面提到的是一樣的。建議大家把ProGuardGUI當成一個生成配置文件的向導來使用,這樣我們只需要修改配置文件而不用重新寫一個配置文件。
如果你覺得ProGuard還不錯,那就快把它加入你的項目里吧。
第三文檔
這是一個不應該在開源社區出現的東西,但它的的確確是一個開源的項目,正像它的名字一樣,Proguard,即Program Guard(程序衛士),它代表了開源的相對面--代碼保護。
作為JAVA這樣的高級語言,編譯的產物只是相對源代碼的一個概念而已,位元組碼雖然不像源代碼那樣易懂,但絕不是不可能進行反編譯的,針對JAVA的反編譯產品很多,如CAVAJ,JAD等等。面對反編譯產品的不斷出現,將代碼視為財富的那些開發者,又何去何從。
混淆器正是在這種背景下應運而生,既然不可能完全地將拒絕反編譯,那就讓他們去反編譯吧,只要反編譯的結果別人不能直接使用不就行了嗎?只要將代碼搞混,讓別人拿到了反編譯的結果也看不懂,甚至不能編譯。
混淆的方法有很多,主要是以下幾方面。
更名,將私有類,私有的成員,方法體內部的變數名改名,改成a,b,c等等,甚至1,2,3(代碼中不允許不等於成果物中不允許)
改變邏輯的流向,如將if條件取反,if/else對換
等價代碼,如將循環改成GOTO
無效代碼,插入不可及的無用代碼
Proguard是一個非常優秀的開源的JAVA混淆器,可以在http://proguard.sourceforge.net/下載到,現在就讓我一起來看一下Proguard.
以3.2版為例,釋放壓縮包,我們看到,作為開源項目就有docs,lib,src,sample文件夾,在此就不一一介紹了。
進入lib目錄,內有proguard.jar,如果要自己有混淆器的外殼,或作ANT插件的話,會用到它,詳細情況可以參考Proguard的文檔。
我們要看的是proguardgui.jar,這是Proguard的圖形界面,我們使用JDK打開,注意是JDK,不是JRE。
點選Input/Output標簽,選擇要混淆的JAR包(注意是JAR包),輸出JAR包,以及用到的所有類庫。
點選Obfuscation標簽,選中不需要混淆的類(要被反射的類絕對不能被混淆)
點選Process標簽,Process按鈕,等著看結果吧。
Proguard中還包括了代碼優化和代碼整理的功能,不是本文討論范圍,有興趣的就自己研究吧)
只混淆方面的選項
使用此種方式,如果a-z使用過,會轉向aa.class,如下圖配置界面
1,4,6,9,10,11,12
源代碼
package org.zwm.pub;
public class Bru {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(showMsg());
}
public static String showMsg() {
return "You are my sun";
}
}
反編譯後的代碼
// Decompiled by Jad v1.5.8g. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.kps.com/jad.html
// Decompiler options: packimports(3)
package org.zwm.pub;
import java.io.PrintStream;
public class Bru
{
public Bru()
{
}
public static void main(String args[])
{
System.out.println(PK0304140008000800fZ());
}
public static String PK0304140008000800fZ()
{
return "You are my sun";
}
}
③ 用C++寫日記軟體用什麼資料庫好啊
access不安全,即便加密用相關工具就破解出密碼了,建議用sqlite,現在很火的一個小型資料庫,很類似於access的一個桌面資料庫,開源,加密演算法可以自己寫,可以參考:http://www.sqlite.com.cn/POParticle/3/253.Html
④ 非對稱加密開源的演算法和程序跨平台linux蘋果windows安卓都能用的有什麼
Windows基本上是我們個人電腦的系統,Linux主要是用於伺服器的,而且很多的安全性高的系統都是在Linux的基礎上改過來的。朋友在兄弟連學的雲計算工程師就必須學Linux 的。
⑤ 什麼是開源
開源即開放源代碼。
開放源代碼(Open source code)也稱為源代碼公開,指的是一種軟體發布模式。一般的軟體僅可取得已經過編譯的二進制可執行檔,通常只有軟體的作者或著作權所有者等擁有程序的原始碼。
有些軟體的作者會將原始碼公開,此稱之為「源代碼公開」,但這並不一定符合「開放原代碼」的定義及條件,因為作者可能會設定公開原始碼的條件限制,例如限制可閱讀原始碼的對象、限制衍生品等。
(5)開源加密庫擴展閱讀:
開放原始碼的定義由Bruce Perens(Debian創始人之一)定義如下:
自由再散布(Free Distribution):允許獲得原始碼的人可自由再將此原始碼散布。
原始碼(Source Code):程序的可執行檔在散布時,必需以隨附完整原始碼或是可讓人方便的事後取得原始碼。
衍生著作(Derived Works):讓人可依此原始碼修改後,在依照同一授權條款的情形下再散布。
原創作者程序原始碼的完整性(Integrity of The Author』s Source Code):意即修改後的版本,需以不同的版本號碼以與原始的程序碼做分別,保障原始的程序碼完整性。
不得對任何人或團體有差別待遇(No Discrimination Against Persons or Groups):開放原始碼軟體不得因性別、團體、國家、族群等設定限制,但若是因為法律規定的情形則為例外(如:美國政府限制高加密軟體的出口)。
對程序在任何領域內的利用不得有差別待遇(No Discrimination Against Fields of Endeavor):意即不得限制商業使用。 散布授權條款(Distribution of License):若軟體再散布,必需以同一條款散布之。
授權條款不得專屬於特定產品(License Must Not Be Specific to a Proct):若多個程序組合成一套軟體,則當某一開放原始碼的程序單獨散布時,也必需要符合開放原始碼的條件。
授權條款不得限制其他軟體(License Must Not Restrict Other Software):當某一開放原始碼軟體與其他非開放原始碼軟體一起散布時(例如放在同一光碟片),不得限制其他軟體的授權條件也要遵照開放原始碼的授權。
授權條款必須技術中立(License Must Be Technology-Neutral):意即授權條款不得限制為電子格式才有效,若是紙本的授權條款也應視為有效。
⑥ 介紹一下什麼是PDM技術PDM軟體是什麼
PDM的中文名稱為產品數據管理(Proct Data Management)。PDM是一門用來管理所有與產品相關信息(包括零件信息、配置、文檔、CAD文件、結構、許可權信息等)和所有與產品相關過程(包括過程定義和管理)的技術。通過實施PDM,可以提高生產效率,有利於對產品的全生命周期進行管理,加強對於文檔,圖紙,數據的高效利用,使工作流程規范化。
PDM 製造過程數據文檔管理系統 ,能夠有效組織企業生產工藝過程卡片、零件藍圖、三維數模、刀具清單、質量文件和數控程序等生產作業文檔,實現車間無紙化生產。
一、PDM技術簡介
PDM是Proct Data Management的縮寫,是指某一類軟體的總稱。CIMdata曾這樣定義:「PDM是一種幫助工程師和其他人員管理產品數據和產品研發過程的工具。PDM系統確保跟蹤設計、製造所需的大量數據和信息,並由此支持和維護產品」。
整個PDM系統和相應的關系型資料庫都建立在計算機的操作系統和網路系統的平台上。同時,還有各式各樣的應用軟體,如CAD、CAPP、CAM、CAE、CAT、文字處理、表格生成、圖象顯示和音像轉換等等。在計算機硬體平台上,構成了一個大型的信息管理系統,PDM將有效地對各類信息進行合理地、正確地和安全地管理。
由上述可知,PDM系統的重要功能有:產品結構管理、電子圖檔管理、工作流程管理、項目管理、安全管理、許可權管理、產品配置管理、版本管理、與CAD/CAM系統的介面、與MRPII/ERP系統的介面等。
二、PDM關鍵技術 1、成組技術
成組技術(GT:Group Technology)是在零件設計和製造中充分利用相似性原理的方法。PDM系統中,GT技術主要體現在信息的編碼管理和產品族管理。信息分類編碼是企業信息化的基礎,是企業實現計算機集成的基本條件之一。PDM中的編碼方案應根據企業的需求,與企業的產品緊密結合在一起,充分考慮企業產品的更新換代和生產過程中信息的表示,使編碼簡潔、實用,起到組織和協調企業內部生產的作用。因此,編碼的優劣成為企業能否接受PDM系統的關鍵性指標。
產品族管理是支持目前企業中「小批量、多品種」生產方式的有效工具。PDM系統中,將具有同類性能特徵的產品、相似結構的部件和零件進行統一管理,提供符合國標的基本零件族定義和一套定製屬性及繼承關系的方法,能有效提高企業零部件的重用水平,使設計人員可以根據用戶的需求迅速生成產品結構樹、物料清單(BOM:Bill of Materials),從而對用戶的需求作出快速反應。
2、客戶化技術
PDM是一種使能技術,需要根據企業的不同情況進行實施。客戶化工作包括為企業定製設計工作流程、項目管理方式、編碼規則、版本控制方法、各種信息的利用方式以及企業提出的各種需求。客戶化的目的是縮短PDM的實施周期,增加PDM系統的柔性,在客戶化過程中最終實現「零編程」。目前比較好的解決方案有模板技術和組件技術。
模板技術是將各功能模塊中的條件參數化。在PDM系統中建立適合於各種功能的模板庫,客戶化過程中,根據不同的需求調用不同的模板,即可在短時間內建立系統所需求的功能模塊。模板技術適用於相對獨立的功能模塊,如果用戶提出超出模板功能的要求時,系統需要另配開發工具,利用定製函數或描述語言進行簡單的編程來實現。
組件技術是在系統中構造一些基本功能模塊和過程模塊(稱為組件Component),這些模
塊具有開放的介面和良好的可組合性,並可實現「即插即用」。當系統需要實現某種功能時,可以將這些基本模塊進行組合,定義相應的屬性即可。組件技術使得PDM的客戶化工作變得十分簡單,只需要搞清企業的具體需求,學會組件的重構方法即可構造出企業所要求的PDM系統。組件技術是軟體設計的方向,尤其適用於Case-by-Case工程,企業可根據管理模式的變化自主調整系統的功能,減少對開發商的依賴。
3、流程的設計方法
PDM中的流程設計是確定產品設計中各個環節和路徑的過程,具體包括設計人員工作職責的制訂、審批人員許可權的劃分等。現行企業中各部門的工作流程具有相似性,實施方案需要根據企業的現行管理模式確定,這就給流程設計方法提出了能不斷適應企業經營管理模式變化而重新組合的功能要求。
PDM中的流程設計方法有兩種:一種是預置式流程設計,該方法將企業中的流程模式預制在一個模塊中,制定流程時只需要對流程進行選擇即可達到設計的要求;另一種是採用可視化設計方法,用圖框表示節點,有向線段表示信息的流向,用屬性來定義節點和流程的相互關系,如將節點定義為設計人員、校對人員、審批人員等,將流程定義為提交、返回修改等。可視化設計流程的方法比較直觀,易於表達,具有較大的靈活性,企業也容易接受。
4、數據存儲與管理
PDM系統中的數據管理包括數據的存取方式、數據的安全性和數據的管理模式等。目前的PDM系統中大多數採用Oracle、SyBase、SQL Server等流行的商用資料庫,數據是以記錄形式存放在資料庫中,這種存放方式可以保證數據在物理上和邏輯上的獨立性,有效地控制對數據的使用,允許不同需求的用戶共享數據。但目前計算機應用系統都是基於文件的自動化孤島,如CAD/CAPP/CAM等系統,在產品開發過程中生成的大部分數據屬於工程數據,其形式多樣,結構復雜,很難用一般的商用資料庫來進行管理。目前採用了變通的方法,即允許數據存放在各自的文件中,資料庫中只存放文件的元數據或路徑數據,如文件的存放路徑、文件名等相關的屬性。
數據的加密措施有3種。一種是所謂偽加密,即將資料庫中的元數據進行加密處理,原數據文件隱式無序存放,一般情況下很難在浩瀚的文件中理出成套技術文檔。第二種方法是採用部分加密方案,將數據文件中的屬性描述位元組取出或加密處理,破壞了原文件的存貯結構,即使將其文件拷出也無法打開。這種方法數據的處理量小,基本上不影響系統的運行效率。第三種方法是設計一種演算法,將文件整體加密處理,只要演算法不被破譯,文件就無法重現,但工程圖形的數據量大,會影響系統的運行速度。
現行PDM系統的數據管理形式是基於關系型資料庫的。數據之間關系通常是靜態的、明確的、簡單的,而產品設計過程中的數據往往是動態的、不明確的,結構也是復雜的,而且具有較高的相關性。人們希望對資料庫的操作能實現「零輸入」,即僅使用滑鼠就可實現PDM系統中編碼管理、流程管理、產品配置管理等功能。實現的方法是建立與產品資料庫相對應的動態操作資料庫,將系統所要實現的操作均存放在該操作庫中,該庫可動態的進行更新,它記錄了需要實現的和已經實現的各類操作,供使用人員在操作時參考和選擇。
5、系統集成
PDM系統的集成主要包括運行環境集成、信息集成、功能集成、技術集成以及人員和組織的集成。系統集成的核心是信息集成,關鍵是人和組織的集成,而運行環境的集成和技術的集成則決定了PDM系統的技術水平、運行效率以及生命周期,功能的集成將直接影響管理和生產的質量和效益。
PDM系統面對的是CAD/CAPP/CAM、MRPⅡ等系統所產生的數據的管理,由於各應用系統中各種對象描述採用的標准
⑦ C#相關框架有哪些
winform開發主流框架依然是N層架構,隨著時間的推移,從面向對象集成系統開發轉向面向服務的分布式開發,C#asp.net當前主流架構依然是MVC類似於C#的N層架構框架當前是MVC5。
相關框架如下:
1、Json.NET
是一個讀寫Json效率比較高的.Net框架.Json.Net 使得在.Net環境下使用Json更加簡單。通過Linq To JSON可以快速的讀寫Json,通過JsonSerializer可以序列化你的.Net對象。讓你輕松實現.Net中所有類型(對象,基本數據類型 等)和Json的轉換。
2、Math.NET
目標是為提供一款自身包含清晰框架的符號運算和數學運算/科學運算,它是C#開發的開源類庫。Math.NET含了一個支持線性代數的解析器,分析復雜微分,解方程等等功能。
3、Faker.Net
開發的時候是不是為測試數據煩惱?Faker.Net可以非常方便幫你生成大批量測試數據。例如人員表裡面的姓名、性別什麼的。
4、Html Agility Pack
是CodePlex 上的一個開源項目。它提供了標準的DOM API 和XPath 導航--即使 HTML 不是適當的格式!HTML Agility Pack 搭配 ScrapySharp,徹底解除Html解析的痛苦。
5、NCrawler
是一款國外的開源網路爬蟲軟體,遵循LGPL許可協議。其HTML處理使用的是htmlagilitypack開源庫,採用xpath的方式處理定位網頁元素,十分方便。
6、SuperWebSocket
基於.NET開源Socket框架SuperSocket開發的, SuperSocket所支持的大部分功能在SuperWebSocket中得到了繼承。用戶可通過SuperWebSocket來快速的構建可靠的,高性能的websocket伺服器端應用程序。
7、SuperSocket
一個輕量級的可擴展的 Socket 開發框架,可用來構建一個伺服器端 Socket 程序,而無需了解如何使用 Socket,如何維護Socket連接,Socket是如何工作的。該項目使用純 C# 開發,易於擴展和集成到已有的項目。只要你的已有系統是使用.NET開發的,你都能夠使用 SuperSocket來輕易的開發出你需要的Socket應用程序來集成到你的現有系統之中。
8、Quartz.NET
一個開源的作業調度框架,是 OpenSymphony 的 Quartz API的.NET移植,它用C#寫成,可用於winform和asp.net應用中。它提供了巨大的靈活性而不犧牲簡單性。你能夠用它來為執行一個作業而 創建簡單的或復雜的調度。它有很多特徵,如:資料庫支持,集群,插件,支持cron-like表達式等等。
9、Lucene.Net
Lucene的.net移植版本,是一個開源的全文檢索引擎開發包,即它不是一個完整的全文檢索引擎,而是一個全文檢索引擎的架構,提供了完整的查詢引擎和索引引擎。開發人員可以基於Lucene.net實現全文檢索的功能。
10、HttpLib
一個基於C#語言的http協議的類庫,Httplib讓非同步交互處理數據更容易了。類庫的方法包括:上傳文件到伺服器,獲取頁面數據等等。
11、Smart Thread Pool
智能線程池,用SmartThreadPool可以簡單就實現支持多線程的程序,由線程池來管理線程,可以減少死鎖的出現。SmartThreadPool還支持簡單的生產者-消費者模式,當不需要對任務進行持久化時,還是很好用的。
12、DocX
是一個用來操作word的輕量級的類庫。藉助DocX,開發人員可以在不需要安裝Microsoft Word的情況下操縱word2007/2010文件。
13、NPOI
是POI項目的 .NET 版本。POI是一個開源的Java讀寫Excel、WORD等微軟OLE2組件文檔的項目。使用 NPOI 你就可以在沒有安裝 Office 或者相應環境的機器上對 WORD/EXCEL 文檔進行讀寫。NPOI是構建在POI 3.x版本之上的,它可以在沒有安裝Office的情況下對Word/Excel文檔進行讀寫操作。
14、PDFsharp
可以輕松地在 .NET 語言中創建PDF文檔的開放源碼庫。它使用相同的繪製程序來創建 PDF 文檔,在屏幕上顯示,以及輸出到列印機。可以修改、合並、拆分已經存在的 PDF 文件,支持透明圖像。
15、Dapper
一個輕型的ORM類。代碼就一個 SqlMapper.cs文件,編譯後就40K的一個很小的Dll.Dapper很快。Dapper的速度接近與IDataReader,取列表的數據超 過了DataTable。Dapper支持Mysql,SqlLite,Mssql2000,Mssql2005,Oracle等一系列的資料庫,當然如 果你知道原理也可以讓它支持Mongo db。話說,這個ORM,博主自己也一直在使用,確實十分強悍,至少在性能方面,恐怕.NET裡面的大多數ORM只能是望其項背了。
16、NHibernate
現在開發人員用的較多的一個ORM。NHibernate是一個面向.NET環境的對象/關系資料庫映射工具。對象/關系資料庫映射(object/relational mapping,ORM)這個術語表示一種技術,用來把對象模型表示的對象映射到基於SQL的關系模型數據結構中去。
17、log4net
Apachelog4j框架在Microsoft .NET平台的實現,是一個幫助程序員將日誌信息輸出到各種目標(控制台、文件、資料庫等)的工具。
18、SharpSerializer
一個開源XML和二進制序列化器。SharpSerializer可以序列化Xml和自己的二進制格式,還可以序列化Json等其他文本格式或其他數據加密,壓縮,優化等二進制流。
19、XProxy
一個支持插件的基礎代理程序集。通過編寫簡單的插件程序,你將能開發各種各樣的代理程序。
XProxy是一個支持插件開發的數據交換機,可以編寫插件對中轉數據進行處理。內置有NAT插件、加解密插件、反向代理、直接代理、間接代理等插件。
20、nopCommerce
國外的一個高質量的開源b2c 網站系統,基於EntityFramework4.0和MVC3.0,使用Razor模板引擎,有很強的插件機制,包括支付配送功能都是通過插件來實現 的,基於xml的多語言版本,非常靈活的語言切換功能,包括在後台都能同時編輯產品的中英文屬性,非常適合做外貿,優秀超前的程序架構,性能也非常強大, 自定義的產品名稱和分類又有很好的seo優化。綜合能力遠遠高於國內的一些程序架構糟糕的.net商城程序,是二次開發和大型b2c架構的首選。3.0開 始支持多店。
21、Enterprise Library
目前最新版本為v5.0,支持.NET Framework 4.0,共包括9個Application Block,包括數據訪問(Data Access Application Block)、異常管理(Exception Handling Application Block)、數據驗證(Validation Application Block)等等,對企業應用開發非常有幫助,也非常實用。
22、Autofac
一款非常優秀的IOC框架,比較於其他的IOC框架,如Spring.NET,等等之類的,它非常的輕量級且性能上也很卓越。
23、AutoMapper
一個.NET的對象映射工具。主要用於領域對象與DTO之間的轉換、資料庫查詢結果映射至實體對象。
24、7-Zip
一款號稱有著現今最高壓縮比的壓縮軟體,它不僅支持獨有的 7z 文件格式,而且還支持各種其它壓縮文件格式,其中包括 ZIP, RAR, CAB, GZIP, BZIP2和 TAR 等等。此軟體壓縮的壓縮比要比普通 ZIP 文件高 30-50% ,因此,它可以把 Zip 格式的文件再壓縮 2-10% 。
⑧ 任務管理器裡面Fs-zip File Manager是什麼
7-zip又被稱作7z、7zip,是一個開放源代碼的免費的解壓縮軟體,提到解壓縮軟體我們就會想到的winrar和winzip,但是這兩款是商業軟體,要麼收費要麼有廣告,而 7-Zip 則是完全免費開源且無廣告的軟體。7-Zip 除了可以支持壓縮、解壓縮 .zip、.rar、tar、gzip 等常見文件格式外,還獨家支持壓縮率更高的 .7z 格式。如果你使用7zip,你可以把文件壓縮成常見的zip格式,也可以壓成7z,為什麼要使用這種格式,因為它有著最高的壓縮比!所以,如果你經常上傳大文件到網路雲等網盤的話,使用7z格式打包後上傳會節省很多時間。比如盜版系統的驅動安裝時解壓縮的驅動事先都是壓縮成7z格式的,所以一張小小的700M的光碟可以包含一個系統和大部分的驅動程序,如果把這些驅動程序統統解壓的話,那有600M,或者更多!是不是很厲害!
當然,你讀到這可能會擔心,如果別人的電腦上的壓縮軟體不支持7z格式怎麼辦呢?據十玩所知,winrar是支持這種格式的,是在不行,你可以使用7zip帶有的自解壓功能,即使系統上沒有解壓縮軟體,你也可以把文件解壓出來。7z這種格式除了高壓縮比、自解壓、支持文件頭壓縮、支持固實壓縮這些特點外能夠兼容任意壓縮、轉換、加密演算法,還支持AES-256加密,支持最大16000000000GB文件的壓縮,文件名使用Unicode,比如UTF-8格式就包含在內,所以使用7z壓縮的軟體在linux和MAC系統下是不會亂碼的,也不會在壓縮和解壓縮時造成問題。
更驚訝的是7zip支持多種系統,包括Windows 10 ~ XP、MAC、linux、solaris、DOS、wince等。提供了極其優異的兼容性和穩定性,所以如果你使用多種操作系統,支持包括簡體中文在內的87種語言,那麼使用7zip這個壓縮軟體是個非常合適的。7zip和winrar是相似的操作界面,並且在右鍵中也包含壓縮和解壓縮的菜單(有壓縮成zip或7z,如果不習慣壓成7z可以壓成zip)。而且由於開源免費,你還在可以將 7-ZIP 用於公司或商業用途不必擔心版權問題。
⑨ 基於PostgreSQL資料庫的幾種數據加密實現方法
作為應用最廣泛的信息存儲和處理系統,資料庫中存在大量敏感數據,如何防止數據被竊取和篡改是重中之重。加密技術是提高資料庫安全的一個重要手段,在對資料庫中存儲數據進行加密時,需要結合它們的特點,對加密演算法、加密粒度以及加密方式進行合理選擇。比如,在選擇加密演算法時,對加密尤其是解密速度要求比較快,不能因為加/解密過程而導致系統性能大幅度下降。其次,應當支持靈活的加密粒度。根據用戶的需要,能夠選擇對資料庫、表、記錄、欄位、數據項進行加密。本文簡要介紹和分析了在一個基於開源資料庫PostgreSQL的安全資料庫系統研究的基礎上,如何針對PostgreSQL資料庫的存儲數據的不同層次,對資料庫的文件(或表、頁)、記錄、欄位等多個層次實現了加密。
⑩ 如何管理好自己的密碼
方法集錦
文檔類工具
1、記事本類工具
密碼管理有很多種方式,最簡單的一種就是將密碼寫到某個記事本文件里,然後可以通過類似Dropbox這樣同步工具同步到多台電腦和移動設備上,同理也可以放到Evernote等雲筆記本上,使用其自帶的方法同步,這種密碼管理方法最簡單,也非常危險,因為密碼是明文保存,一旦黑客入侵獲取了這份密碼文件,或者筆記本電腦丟失,用戶都將失去所有的賬號密碼,風險很大。
2、word文檔類工具
用word文檔的好處是可以加密碼,具有一定的安全性,也可以在首頁自動生成目錄,或用標簽超鏈接的方式將各種賬號密碼分類目錄放在第一頁。每次編輯或查閱的時候直接用快捷鍵ctrl+滑鼠左鍵快速達到目的頁面。分類如可分為購物類網站、門戶類網站、或者其他軟體賬號等,分別在相關頁面填好賬號密碼。但是個人覺得這種方法操作起來比較麻煩,平常懶的時候乾脆用記事本。
瀏覽器自帶密碼保存
Chrome瀏覽器和Firefox瀏覽器自身就支持保存密碼的同步功能,可以保存登錄過的用戶名和密碼,登錄的時候只要選擇就好了,不用重新輸入。設置瀏覽器數據同步後,即使重裝過系統後,還是可以還原回原先保存的密碼,不用每次都要手動輸入用戶名和密碼,使用起來非常方便,在易用性方面做的非常出色。
不過,Chrome和Firefox自帶的密碼管理器相對較為簡單,如果黑客遠程式控制制或入侵了用戶電腦,就可以獲得明文密碼,很不安全。雖然Firefox可以設置「主密碼」來防止查看明文密碼,但設置「主密碼」後,錄入密碼的易用性卻大為降低。同時,對於同一個網站,瀏覽器只能記錄一個用戶名和密碼。
因此,對於瀏覽器保存密碼來說,密碼保護的主要策略是防止用戶電腦被入侵攻擊。
在線密碼管理服務
在線密碼管理,就是將密碼放在雲端(伺服器端),這就解決了本地電腦安全性問題,密碼保護變成了針對密碼伺服器的保護。
最為著名的雲端密碼管理服務是LastPass,其支持Chrome、FireFox及IE等主流瀏覽器以及iPhone、Android和黑莓等移動設備,支持谷歌身份驗證器(Google Authenticator),支持將瀏覽器中現有帳號及密碼導入到LastPass資料庫中。在登錄時,Lastpass的瀏覽器插件會自動填寫登錄所需的信息並自動登錄,支持針對同一個站點的不同用戶名的登錄,使用非常方便。
Lastpass在兼容性、易用性和安全性上都非常不錯,並且提供免費版本,唯一的問題是Lastpass網站本身的安全性如何,做為一個雲端在線密碼管理服務,Lastpass將密碼保存在網上,密碼保護變成了針對Lastpass的密碼保護,如果Lastpass網站有漏洞,或者用戶的Lastpass密碼被攻破,Lastpass的密碼保護就會失效,用戶依舊可能失去所有的明文密碼。
因此,對於用戶來說,強烈建議在Lastpass中綁定谷歌身份驗證器(Google Authenticator),綁定之後,即使用戶的Lastpass密碼被盜,沒有用戶的手機和密保信箱,黑客也無法登錄Lastpass網站。
開源密碼管理軟體
在線密碼管理雖然看起來很酷,但很多人還是不放心,寧願將密碼放在本地保存管理,目前也有一些常用的本地密碼管理軟體,其中最知名的就是KeePass這個開源密碼保護軟體。KeePass採用本地資料庫的方式對密碼進行管理,軟體對密碼資料庫採用256位AES演算法加密,理論上破解難度極大。這樣,即使電腦丟失或黑客入侵導緻密碼資料庫被竊取,黑客也很難從中解密出明文帳號密碼信息。
KeePass是開源軟體,綠色無需安裝,支持功能很多,包括導入導出、第三方插件以及中文界面等等,通過ChromeIPass和KeePassHttp兩個插件,可以實現Chrome瀏覽器填入KeePass資料庫密碼的功能。
KeePass不能直接導入Chrome瀏覽器的密碼,需要先使用ChromePass這個軟體先將Chrome密碼導出為CSV格式,然後再從KeePass中導入CSV文件。
除了免費開源軟體之外,還有一些付費商業密碼管理軟體,例如1Password、RoboForm等,這些商業軟體提供30天免費試用,超過時間期限後就需要付費購買。
總結
對於大量帳號密碼的管理,肯定是需要一個密碼管理軟體,從跨平台以及易用性上看,Lastpass做為專業的帳號密碼管理軟體,使用簡單,方便安全,相對其它幾款軟體有很大的可用性以及實用性。但Lastpass的主要缺點是,用戶必須要信任Lastpass的安全性,而網路攻擊可能會主要針對雲端的Lastpass,而一旦Lastpass網站被攻破,則用戶密碼就存在外泄的可能。KeePass做為本地密碼管理非常強大,但易用性相對較差,瀏覽器自身的密碼保存易用性很好,但安全性很差。
總的來看,例如郵箱、網銀等最為核心的密碼最好還是記在自己的大腦里,一些其他重要性較低的網站密碼可以採用上述的密碼管理工具,以減輕用戶記憶大量密碼的負擔,同時又保證了用戶上網的安全性