反編譯sha1
⑴ springmvc spring mybatis 框架搭建的MAVEN項目,怎麼加密解密啊,有源碼嗎
不知道你說的加密解密是指項目中對某個欄位加密解密,還是 要多源碼進行加密解密,如果是對某個欄位加密解密,比如密碼,可以自己手寫一個工具類(網上也可以找到),將傳過去的字元串用MD5或者sha1加密後返回的方式,需要加密就調用這個方法,如果你要對整個項目的源碼加密,那應該是沒辦法,因為不管怎麼加密運行的時候都需要轉化為位元組碼。位元組碼.class都是可以反編譯過來的
⑵ 打開apk內的resources時顯示錯誤,是不是這個apk是加密了的,安卓能否反編譯打開
解決方案:將apktool版本升級到2.0.0即可解決,但要注意的是這一版本使用jdk1.7編譯的,所以jre低於1.7的會報錯;
將apktool升級到2.0.0時,重打包出來的apk在安裝時報錯:INSTALL_PARSE_FAILED_NO_CERTIFICATES。網上說是沒有簽名,可已經用jarsigner簽名過了,後來發現是由於jdk7的默認簽名演算法改變了,和jdk6的不同。
解決方案:使用jarsigner簽名時要注意加入以下選項,這樣打出來的apk就ok了:
-digestalg SHA1 -sigalg MD5withRSA
⑶ RC4 與 DES 哪個演算法最安全
隨機密鑰加密演算法:RC4
位密碼演算法:DES 三重DES(Triple-DES)仍然是很安全的,但是也只是在別無他法的情況下的一個較好的選擇。顯然高級加密標准(AES)是一個更好的加密演算法,NIST用AES代替Triple-DES作為他們的標准(下面有更詳細的討論)。其他較好的演算法包括另外兩個AES的變種演算法Twofish和Serpent-也稱為CAST-128,它是效率和安全的完美結合。這幾個演算法不僅比DES更安全,而且也比DES的速度更快。為什麼要使用一些又慢又不安全的演算法呢?SHA1是一個哈希函數,而不是一個加密函數。作為一個哈希函數,SHA1還是相當優秀的,但是還需要幾年的發展才能用作加密演算法。如果你正在設計一個新系統,那麼謹記你可能會在若干年後用SHA1代替目前的演算法。我再重復一遍:只是可能。呵呵,希望能幫到你!謝謝望採納哦!
⑷ android客戶端怎樣用七牛上傳照片
相信很多開發者會把圖片存放到七牛上,我的web站點也是吧圖片存儲到七牛上,對於以圖片為主的站點,這樣可以節省很大帶寬。
將圖片上傳到七牛伺服器的重點就是獲得上傳憑證uploadToken,直接把AccessKey和Secret放到客戶端太不安全,容易被反編譯。所以需要在伺服器端根據AccessKey和Secret動態生成一個uploadToken,然後傳回到客戶端,客戶端通過這個uploadToken將圖片上傳到七牛伺服器。
第一、在伺服器端生成uploadToken
//將圖片上傳到七牛 start
$bucket='七牛空間名稱';
$expires = 3600;
$accessKey='去七牛查看';
$secretKey='去七牛查看';
$client = new QiniuClient($accessKey,$secretKey);
$flags = array();
$scope = $bucket;
$deadline = time() + $expires;
$flags['scope'] = $scope;
$flags['deadline'] = $deadline;
$flags['returnBody'] = null;
echo $client->uploadToken($flags);
這里注意一下bucket:七牛空間名稱和deadline:uploadToken失效時間,具體可查看一下官網上傳憑證介紹
uploadToken($flags)是自己封裝的用於生成上傳憑證的函數
public function uploadToken($flags) { if(!isset($flags['deadline'])) $flags['deadline'] = 3600 + time(); $encodedFlags = self::urlsafe_base64_encode(json_encode($flags)); $sign = hash_hmac('sha1', $encodedFlags, $this->secretKey, true); $encodedSign = self::urlsafe_base64_encode($sign); $token = $this->accessKey.':'.$encodedSign. ':' . $encodedFlags; return $token; }
public static function urlsafe_base64_encode($str){
$find = array("+","/");
$replace = array("-", "_");
return str_replace($find, $replace, base64_encode($str));
}
第二、下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6並導入項目
第三、android上傳圖片
由於Android4.0 以後不允許在主線程進行網路連接,所以需要新開個線程來獲取上傳憑證。
/*
* 上傳圖片到七牛
*/
private void uploadImg(){
new Thread(new Runnable(){
@Override
public void run() {
//獲得七牛上傳憑證uploadToken
String token=getUploadToken();
//手機SD卡圖片存放路徑
String imgPath="";
try {
imgPath=FileUtil.getBasePath()+ "/test.jpg";
} catch (IOException e) {
e.printStackTrace();
}
if(token!=null){
String data = imgPath;
//圖片名稱為當前日期+隨機數生成
String key = getRandomFileName();
UploadManager uploadManager = new UploadManager();
uploadManager.put(data, key, token,
new UpCompletionHandler() {
@Override
public void complete(String arg0, ResponseInfo info, JSONObject response) {
// TODO Auto-generated method stub
Log.i("qiniu", info.toString());
}
}, null);
}
else{
Log.i("fail", "上傳失敗");
}
}
}).start();
}
FileUtil.getBasePath()使用來獲取SD卡基本路徑,getRandomFileName()生成一個隨機數來命名上傳圖片,具體方法我在這就不寫了。
獲得上傳憑證的方法也很簡單,直接使用httpget和伺服器通信,獲得第一步中生成的數據即可。(注意10.0.2.2是模擬器提供的特殊IP,等同於在電腦端的環回測試IP127.0.0.1)
/*
* 獲得七牛上傳憑證uploadtoken
*/
private String getUploadToken()
{
HttpClient client = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();
HttpGet myget = new HttpGet("http://10.0.0.2/test/getUploadToken.php");
try {
HttpResponse response = client.execute(myget);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}
return builder.toString();
} catch (Exception e) {
Log.i("url response", "false");
e.printStackTrace();
return null;
}
}
通過LOG日誌可以看到Qiniu--success,說明上傳成功。
⑸ 七牛圖片基本處理和水印能同時用嗎
相信很多開發者會把圖片存放到七牛上,我的web站點也是吧圖片存儲到七牛上,對於以圖片為主的站點,這樣可以節省很大帶寬。 將圖片上傳到七牛伺服器的重點就是獲得上傳憑證uploadToken,直接把AccessKey和Secret放到客戶端太不安全,容易被反編譯。所以需要在伺服器端根據AccessKey和Secret動態生成一個uploadToken,然後傳回到客戶端,客戶端通過這個uploadToken將圖片上傳到七牛伺服器。 第一、在伺服器端生成uploadToken //將圖片上傳到七牛 start $bucket='七牛空間名稱'; $expires = 3600; $accessKey='去七牛查看'; $secretKey='去七牛查看'; $client = new QiniuClient($accessKey,$secretKey); $flags = array(); $scope = $bucket; $deadline = time() + $expires; $flags['scope'] = $scope; $flags['deadline'] = $deadline; $flags['returnBody'] = null; echo $client->uploadToken($flags); 這里注意一下bucket:七牛空間名稱和deadline:uploadToken失效時間,具體可查看一下官網上傳憑證介紹 uploadToken($flags)是自己封裝的用於生成上傳憑證的函數 public function uploadToken($flags) { if(!isset($flags['deadline'])) $flags['deadline'] = 3600 + time(); $encodedFlags = self::urlsafe_base64_encode(json_encode($flags)); $sign = hash_hmac('sha1', $encodedFlags, $this->secretKey, true); $encodedSign = self::urlsafe_base64_encode($sign); $token = $this->accessKey.':'.$encodedSign. ':' . $encodedFlags; return $token; } public static function urlsafe_base64_encode($str){ $find = array("+","/"); $replace = array("-", "_"); return str_replace($find, $replace, base64_encode($str)); } 第二、下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6並導入項目 第三、android上傳圖片 由於Android4.0 以後不允許在主線程進行網路連接,所以需要新開個線程來獲取上傳憑證。 /* * 上傳圖片到七牛 */ private void uploadImg(){ new Thread(new Runnable(){ @Override public void run() { //獲得七牛上傳憑證uploadToken String token=getUploadToken(); //手機SD卡圖片存放路徑 String imgPath=""; try { imgPath=FileUtil.getBasePath()+ "/test.jpg"; } catch (IOException e) { e.printStackTrace(); } if(token!=null){ String data = imgPath; //圖片名稱為當前日期+隨機數生成 String key = getRandomFileName(); UploadManager uploadManager = new UploadManager(); uploadManager.put(data, key, token, new UpCompletionHandler() { @Override public void complete(String arg0, ResponseInfo info, JSONObject response) { // TODO Auto-generated method stub Log.i("qiniu", info.toString()); } }, null); } else{ Log.i("fail", "上傳失敗"); } } }).start(); } FileUtil.getBasePath()使用來獲取SD卡基本路徑,getRandomFileName()生成一個隨機數來命名上傳圖片,具體方法我在這就不寫了。 獲得上傳憑證的方法也很簡單,直接使用httpget和伺服器通信,獲得第一步中生成的數據即可。(注意10.0.2.2是模擬器提供的特殊IP,等同於在電腦端的環回測試IP127.0.0.1) /* * 獲得七牛上傳憑證uploadtoken */ private String getUploadToken() { HttpClient client = new DefaultHttpClient(); StringBuilder builder = new StringBuilder(); HttpGet myget = new HttpGet("10.0.0.2/test/getUploadToken.php"); try { HttpResponse response = client.execute(myget); BufferedReader reader = new BufferedReader(new InputStreamReader( response.getEntity().getContent())); for (String s = reader.readLine(); s != null; s = reader.readLine()) { builder.append(s); } return builder.toString(); } catch (Exception e) { Log.i("url response", "false"); e.printStackTrace(); return null; } } 通過LOG日誌可以看到Qiniu--success,說明上傳成功。
⑹ anzhuo應用程序怎麼反編譯
讓我們先來認識下APK文件. Android的應用程序包為擴展名為.apk文件, 無論你是從手機市場里下載, 還是電腦中下載. 都是這類APK文件. APK是AndroidPackage的縮寫,即Android安裝包(apk)。APK是類似Symbian Sis或Sisx的文件格式。通過將APK文件直接傳到Android模擬器或Android手機中執行即可安裝。apk文件和sis一樣,把android sdk編譯的工程打包成一個安裝程序文件,格式為apk。 APK文件其實是zip格式,但後綴名被修改為apk,通過UnZip解壓後,可以看到Dex文件,Dex是Dalvik VM executes的全稱,即Android Dalvik執行程序,並非Java ME的位元組碼而是Dalvik位元組碼。Android在運行一個程序時首先需要UnZip,然後類似Symbian那樣直接,和Windows Mobile中的PE文件有區別.
android
一個APK文件解壓開通常有這樣的文件夾:
META-INF 目錄:
MANIFEST.MF: manifest文件
CERT.RSA: 應用程序證書
CERT.SF: SHA-1資源簽名列表. 例如:
Signature-Version: 1.0
Created-By: 1.0 (Android)
SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
...
Name: res/layout/exchange_component_back_bottom.xml
SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
...
Name: res/drawable-hdpi/icon.png
SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
lib: 這個目錄包含某些特定編譯代碼, 這個文件夾分成下面這些
armeabi: 只基於所有ARM處理器的編譯代碼.
armeabi-v7a: 所有ARMv7處理器的編譯代碼
x86: 僅針對x86處理器的編譯代碼
mips: 為MIPS處理器的編譯代碼
res: 包含資源的目錄不編譯到資源文件,看下面:
assets: 包含應用程序的資產,可以通過AssetManager進行檢索.
AndroidManifest.xml: 包含應用程序的元數據文件,描述名稱、版本、訪問許可權、引用應用程序的庫文件。此文件在Android二進制格式, 可被工具轉化為可讀的純文本XML工具,如 AXMLPrinter2,apktool,或Androguard。設置,可以通過AssetManager進行檢索
classes.dex: Dalvik位元組碼
resources.arsc : 一個包含預編譯資源文件,如二進制的XML.
有兩種方法反編譯APK, 如果是為了漢化程序, 可以使用apktool:
安裝過程
1.下載apktool1.5.2.tar.bz2和apktool-install-windows-r05-brut1.tar.bz2
2.把兩個文件都解壓放在同一個目錄,共三個文件
aapt.exe
apktool.bat
apktool.jar用於解包,apktool.jar和aapt.exe聯合用於打包。
在命令行執行:
apktool d d:xxx.apk d:xxx
xxx 為你的輸出目錄, 然後你就可以看一些xml的資源文件, 以及Smali文件. 如下圖某APK文件反編譯輸出目錄:
由此可見,Android應用程序反編譯並不難, 加密與解密的斗爭一直會持續.
⑺ ios 用七牛sdk上傳資源,報405錯誤是什麼情況
相信很多開發者會把圖片存放到七牛上,我的web站點也是吧圖片存儲到七牛上,對於以圖片為主的站點,這樣可以節省很大帶寬。
將圖片上傳到七牛伺服器的重點就是獲得上傳憑證uploadToken,直接把AccessKey和Secret放到客戶端太不安全,容易被反編譯。所以需要在伺服器端根據AccessKey和Secret動態生成一個uploadToken,然後傳回到客戶端,客戶端通過這個uploadToken將圖片上傳到七牛伺服器。
第一、在伺服器端生成uploadToken
//將圖片上傳到七牛 start
$bucket='七牛空間名稱';
$expires = 3600;
$accessKey='去七牛查看';
$secretKey='去七牛查看';
$client = new QiniuClient($accessKey,$secretKey);
$flags = array();
$scope = $bucket;
$deadline = time() + $expires;
$flags['scope'] = $scope;
$flags['deadline'] = $deadline;
$flags['returnBody'] = null;
echo $client->uploadToken($flags);
這里注意一下bucket:七牛空間名稱和deadline:uploadToken失效時間,具體可查看一下官網上傳憑證介紹
uploadToken($flags)是自己封裝的用於生成上傳憑證的函數
public function uploadToken($flags) { if(!isset($flags['deadline'])) $flags['deadline'] = 3600 + time(); $encodedFlags = self::urlsafe_base64_encode(json_encode($flags)); $sign = hash_hmac('sha1', $encodedFlags, $this->secretKey, true); $encodedSign = self::urlsafe_base64_encode($sign); $token = $this->accessKey.':'.$encodedSign. ':' . $encodedFlags; return $token; }
public static function urlsafe_base64_encode($str){
$find = array("+","/");
$replace = array("-", "_");
return str_replace($find, $replace, base64_encode($str));
}
第二、下載qiniu-android-sdk-7.0.0.jar和android-async-http-1.4.6並導入項目
第三、android上傳圖片
由於Android4.0 以後不允許在主線程進行網路連接,所以需要新開個線程來獲取上傳憑證。
/*
* 上傳圖片到七牛
*/
private void uploadImg(){
new Thread(new Runnable(){
@Override
public void run() {
//獲得七牛上傳憑證uploadToken
String token=getUploadToken();
//手機SD卡圖片存放路徑
String imgPath="";
try {
imgPath=FileUtil.getBasePath()+ "/test.jpg";
} catch (IOException e) {
e.printStackTrace();
}
if(token!=null){
String data = imgPath;
//圖片名稱為當前日期+隨機數生成
String key = getRandomFileName();
UploadManager uploadManager = new UploadManager();
uploadManager.put(data, key, token,
new UpCompletionHandler() {
@Override
public void complete(String arg0, ResponseInfo info, JSONObject response) {
// TODO Auto-generated method stub
Log.i("qiniu", info.toString());
}
}, null);
}
else{
Log.i("fail", "上傳失敗");
}
}
}).start();
}
FileUtil.getBasePath()使用來獲取SD卡基本路徑,getRandomFileName()生成一個隨機數來命名上傳圖片,具體方法我在這就不寫了。
獲得上傳憑證的方法也很簡單,直接使用httpget和伺服器通信,獲得第一步中生成的數據即可。(注意10.0.2.2是模擬器提供的特殊IP,等同於在電腦端的環回測試IP127.0.0.1)
/*
* 獲得七牛上傳憑證uploadtoken
*/
private String getUploadToken()
{
HttpClient client = new DefaultHttpClient();
StringBuilder builder = new StringBuilder();
HttpGet myget = new HttpGet("");
try {
HttpResponse response = client.execute(myget);
BufferedReader reader = new BufferedReader(new InputStreamReader(
response.getEntity().getContent()));
for (String s = reader.readLine(); s != null; s = reader.readLine()) {
builder.append(s);
}
return builder.toString();
} catch (Exception e) {
Log.i("url response", "false");
e.printStackTrace();
return null;
}
}
通過LOG日誌可以看到Qiniu--success,說明上傳成功。
⑻ .bat如何用md5加密
//////////////////////////////////////////////////
//
首先你要明白兩點:
1.批處理是靠cmd.exe解釋運行的
2.md5不是加密演算法而是「信息摘要演算法」,不管多大的文件或者多長的字元串只返回16或32位的hash信息
所以md5不可逆,而且不是嚴格意義的加密演算法?要說加密的話也應該是rsa,des這些IEEE認證的演算法的
你的問題,可以寫個exe,把加密後的bat作為資源捆綁進exe中,然後由exe負責解密運行,但這樣得不償失,成本太高,還不如直接寫exe來的快
如果你非要加密想來想去只有一個比較經濟可行的方法,用winrar把批處理做成一個可執行的解壓文件,就是exe格式的rar包,然後給這個exe文件加個強殼,這樣可以在一定程度上保護起來,但是內行還是可以解出來的
最後,共享是一種美德,雖然我基本可以肯定你哪個所謂的bat技術含量不會太高。。
/////////////////////////////////////////////
⑼ C#加密狗的實現
對部分加密狗實現IP或者MAC限制,精銳5加密鎖可實現綁定本機設備。
C#程序使型告用精銳5加密狗的方式來實現軟體的加密保護卜腔明及授權管理,需考慮安全及授權管理兩方面。
加密的安全性,不能隨便被破。精銳5加密鎖的加密技術由:代碼加密/代碼碎片化/代碼混淆。
代碼碎片化:深思自圓李主知識產權的最新技術:基於 LLVM 和 ARM 虛擬機技術,自動抽取海量代碼移入 SS 內核態模塊,極大的降低了使用門檻, 不再需要手動移植演算法,可移植的演算法從有限的幾個增長到幾乎無限多,支持的語言也不再限於 C, 這是加密技術的一次綜合應用,效果上類似於將軟體打散執行,讓破解者無從下手。
代碼加密(IL):針對dotNet程序,保護IL代碼:一種動態運行方法解密被保護代碼。把當前代碼加密存儲為密文,存儲起來,當程序運行到被保護函數時候自動解密並且執行,執行之後再擦除代碼,執行之後再擦除代碼,運行到哪裡才解密哪裡的代碼,黑客無法獲得原始的中間語言的指令和內存完整性的代碼,由於是純內存操作所以運行速度快, 性價高的保護手段,建議全加。
代碼混淆(IL):
將代碼中的各種元素,如變數,函數,類的名字改寫成無意義的名字。比如改寫成單個字母,或是簡短的無意義字母組合,甚至改寫成「__」這樣的符號,使得閱讀的人無法根據名字猜測其用途。
a)重寫代碼中的部分邏輯,將其變成功能上等價,但是更難理解的形式。比如將for循環改寫成while循環,將循環改寫成遞歸,精簡中間變數,等等。
b) 打亂代碼的格式。比如刪除空格,將多行代碼擠到一行中,或者將一行代碼斷成多行等等。
c) 添加花指令,通過特殊構造的指令來使得反匯編器出錯,進而干擾反編譯工作的進行。
加密鎖本身的安全:
內置安全演算法
精銳5加密狗內置安全演算法有:
RSA1024/RSA2048
ECC192/ECC256/ECC384
AES128/AES192/AES256
DES/TDES
SHA1/SHA256
存儲空間:目前加密鎖存儲空間最大可達到512K。
介面標准:USB2.0全速設備
加密方式:加殼工具
加殼工具可快速的對代碼進行加密保護,無需修改代碼,幾分鍾即可完成高安全性加密。