加密亂序
㈠ 簡單講解iOS應用開發中的MD5加密的使用
一、簡單說明
1.說明
在開發應用的時候,數據的安全性至關重要,而僅僅用POST請求提交用戶的隱私數據,還是不能完全解決安全問題。
如:可以利用軟體(比如Charles)設置代理伺服器,攔截查看手機的請求數據
「青花瓷」軟體
因此:提交用戶的隱私數據時,一定不要明文提交,要加密處理後再提交
2.常見的加密演算法
MD5 SHA DES 3DES RC2和RC4 RSA IDEA DSA AES
3.加密演算法的選擇
一般公司都會有一套自己的加密方案,按照公司介面文檔的規定去加密
二、MD5
1.簡單說明
MD5:全稱是Message Digest Algorithm 5,譯為「消息摘要演算法第5版」
效果:對輸入信息生成唯一的.128位散列值(32個字元)
2.MD5的特點
(1)輸入兩個不同的明文不會得到相同的輸出值
(2)根據輸出值,不能得到原始的明文,即其過程不可逆
3.MD5的應用
由於MD5加密演算法具有較好的安全性,而且免費,因此該加密演算法被廣泛使用
主要運用在數字簽名、文件完整性驗證以及口令加密等方面
4.MD5破解
MD5解密網站:http://www.cmd5.com
5.MD5改進
現在的MD5已不再是絕對安全,對此,可以對MD5稍作改進,以增加解密的難度
加鹽(Salt):在明文的固定位置插入隨機串,然後再進行MD5
先加密,後亂序:先對明文進行MD5,然後對加密得到的MD5串的字元進行亂序
總之宗旨就是:黑客就算攻破了資料庫,也無法解密出正確的明文
代碼示例:
復制代碼 代碼如下:
#import "HMViewController.h"
#import "NSString+Hash.h"
#define Salt @"fsdhjkfhjksdhjkfjhkd546783765"
@interface HMViewController ()
@end
@implementation HMViewController
- (void)viewDidLoad
{
[super viewDidLoad];
[self digest:@"123"]; //
[self digest:@"abc"];
[self digest:@"456"];
}
/**
* 直接用MD5加密
*/
- (NSString *)digest:(NSString *)str
{
NSString *anwen = [str md5String];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
/**
* 加鹽
*/
- (NSString *)digest2:(NSString *)str
{
str = [str stringByAppendingString:Salt];
NSString *anwen = [str md5String];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
/**
* 多次MD5
*/
- (NSString *)digest3:(NSString *)str
{
NSString *anwen = [str md5String];
anwen = [anwen md5String];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
/**
* 先加密, 後亂序
*/
- (NSString *)digest4:(NSString *)str
{
NSString *anwen = [str md5String];
// 注冊: 123 ----
// 登錄: 123 ---
NSString *header = [anwen substringToIndex:2];
NSString *footer = [anwen substringFromIndex:2];
anwen = [footer stringByAppendingString:header];
NSLog(@"%@ - %@", str, anwen);
return anwen;
}
@end
(1)直接使用MD5加密(去MD5解密網站即可破解)
(2)使用加鹽(通過MD5解密之後,很容易發現規律)
(3)多次MD5加密(使用MD5解密之後,發現還是密文,那就接著MD5解密)
(4)先加密,後亂序(破解難度增加)
三、注冊和驗證的數據處理過程
1.提交隱私數據的安全過程 – 注冊
2.提交隱私數據的安全過程 – 登錄
㈡ 電驢安全亂序加密是什麼意思
部分的服務商對於BT 電驢不是封殺嗎~所以在連接網路時候採取亂碼加密的技術,讓電驢發送到服務商的數據不被檢測出來,而變成正常通行的網路程序,這就可以使電驢成功的通過ISP封鎖,達到可以放心使用下載的目的啦。
不過這個好像不是在哪都行的通,具體的效果你要自己選中後重新啟動電驢去試試看的。副作用是沒什麼的。
㈢ 簡單二進制加密的方法有哪些
一個簡單而專業的辦法是,你用DES加密,加密後,這句話就成了密文。
還有一個辦法,你自己隨便編一個128的亂序ASCII字元對應表,其實就是在程序中加個128位元組的常量數組,然後將你的那句話逐位元組的查表替換就可以生成密文了。
㈣ c語言 字元加密 亂序加密
這個很簡單,關鍵是你輸入的那個26字母的字元串要是有重復,那麼解密就是不可逆的了
char a[27];
char b[1000];
int i;
gets(a); //26個亂碼
fflush(stdin);
gets(b); //需要加密的字元
for(i=0;b[i];i++)
if(b[i]>='a'&&b[i]<='z')
b[i]=a[b[i]-'a']; //這是核心代碼,意思就是加b字元減去97對應的a中的字元
else if(b[i]>='A'&&b[i]<='Z')
b[i]=a[b[i]-'A']-'a'+'A'; //這個需要大小寫轉換一下,可以減去32
㈤ c語言 字元亂序加密
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
char key[26];
void initkey(void)
{
int i;
for(i=0; i<26; ++i)
key[i]='a'+i;
}
void upsetkey(void)
{
srand(time(0));
int i,temp,r;
for(i=0; i<26; ++i) {
r=rand()%26;
temp=key[i];
key[i]=key[r];
key[r]=temp;
}
}
void encryptkey(char *srcstr)
{
while(*srcstr!='\0') {
if(*srcstr>='a'&&*srcstr<='z')
*srcstr=key[*srcstr-'a'];
if(*srcstr>='A'&&*srcstr<='Z')
*srcstr=key[*srcstr-'A']-'a'+'A';
++srcstr;
}
}
void printkey(void)
{
printf("key=%s\n",key);
}
int main(void)
{
initkey();
upsetkey();
printkey();
printf("input string\n");
char srcstr[20];
fgets(srcstr,20,stdin);
encryptkey(srcstr);
printf("%s\n",srcstr);
return 0;
}
㈥ 壓縮文件是怎麼加密的(演算法原理)
加密的方法非常多了,看你選哪種。
常用的加密演算法主要分為分組加密和序列加密。其中對大塊數據進行高速加密一般用後者,但是安全性較低。一般的數據加密可考慮採用3DES、AES等成熟的分組加密演算法。
而涉及具體應用,可能會有各種變種或者特化的加密方式。
比如WinRAR用的是自己修改過的AES(分組加密演算法的一種),進行初始化加密,之後使用上一次加密的結果進行自定義的亂序加密。