u盘加密软件哪个好用(aes加解密软件app)

2023-03-15 12:40:14 密语知识 思思

1、Wondershare USB加密软件

通用U盘加密软件Wondershare USB Drive Encryption本身是收费软件,但已经被汉化免费过了,所以我们可以用它来加密任意的U盘,不限制品牌和类型,所以是比较推荐的一款U盘加密软件了。

2、Idoo USB Encryption

也是一款通用的U盘加密软件,基于256位AES加密技术,忘记密码无法破解,加密后切记密码,本来也是收费的,已经被注册,加密级别很高,也是把你的U盘分出一个加密分区,专门存放你的重要文件,剩下的分区是正常U盘分区,可以放入常用文件,遗憾的它只有英文版,但使用起来并不困难,要解密必须在安装有此软件的电脑上。

3、EncryptStick中文版

一样通用任何U盘的加密软件,它加密级别很高,软件是中文的已经注册的版本,可以对任意文件夹进行加密,跟上面的两款不同的是,它不会分区,只是对文件夹进行加密,所以你必须把程序拷贝到U盘运行,不能使用程序自带的安装到U盘功能,基于1024位AES加密算法,所以依然无法破解,加密后自己一定要记得密码。

4、Rohos Disk Encryption中文版

一样基于AES加密算法的U盘加密软件,通用级别,它一样把U盘分出一个专门的加密分区,它的特点就是不受电脑限制,加密后,任意一台电脑都可以进行解密加密操作,当然加密后,需要你把软件拷贝到U盘公共分区里。

5、伊豆U盘加密软件

这是一款国产的免费的通用U盘加密软件,原理一样是把U盘分出一个区来放加密的文件,可自行设置加密分区的容量大小,通过滑块来划分,软件是绿色的,你需要把它拷贝到U盘根目录下运行来进行加密和解密操作,不受电脑限制,可在任何电脑上解密。

求AES加解/密码密软件程序!!!

有界面,我这里有个,但是是c#语言的,你以为如何?

下面是c版本的

AES加密算法源代码

//AES.h

#define decrypt TRUE

#define encrypt FALSE

#define TYPE BOOL

typedef struct _AES{

int Nb;

int Nr;

int Nk;

unsigned long *Word;

unsigned long *State;

}AES;

/*

加密数据

byte *input 明文

byte *inSize 明文长

byte *out 密文存放的地方

byte *key 密钥key

byte *keySize 密钥长

*/

void Cipher(

unsigned char* input,

int inSize,

unsigned char* out,

unsigned char* key,

int keySize);

/*

解密数据

byte *input 密文

int *inSize 密文长

byte *out 明文存放的地方

byte *key 密钥key

int *keySize 密钥长

*/

void InvCipher(

unsigned char* input,

int inSize,

unsigned char* out,

unsigned char* key,

int keySize);

/*

生成加密用的参数AES结构

int inSize 块大小

byte* 密钥

int 密钥长

unsigned long 属性(标实类型)

返回AES结构指针

*/

AES *InitAES(AES *aes,

int inSize,

unsigned char* key,

int keySize, TYPE type);

/*

生成加密用的参数AES结构

int inSize 块大小

byte* 密钥

int 密钥长

返回AES结构指针

*/

AES *InitAES(

int inSize,

unsigned char* key,

int keySize, BOOL );

/*

加密时进行Nr轮运算

AES * aes 运行时参数

*/

void CipherLoop(

AES *aes);

/*

解密时进行Nr轮逆运算

AES * aes 运行时参数

*/

void InvCipherLoop(

AES *aes);

/*

释放AES结构和State和密钥库word

*/

void freeAES(

AES *aes);

//AES.cpp

#include "stdafx.h"

#include

#include

#include "AES.h"

unsigned char* SubWord(unsigned char* word);

unsigned long* keyExpansion(unsigned char* key, int Nk, int Nr,int);

/*

加密数据

byte *input 明文

byte *inSize 明文长

byte *out 密文存放的地方

byte *key 密钥key

byte *keySize 密钥长

*/

void Cipher(unsigned char* input, int inSize, unsigned char* out, unsigned char* key, int keySize)

{

AES aes ;

InitAES(aes,inSize,key,keySize,encrypt);

memcpy(aes.State,input,inSize);

CipherLoop(aes);

memcpy(out,aes.State,inSize);

}

/*

解密数据

byte *input 密文

int *inSize 密文长

byte *out 明文存放的地方

byte *key 密钥key

int *keySize 密钥长

*/

void InvCipher(unsigned char* input, int inSize, unsigned char* out, unsigned char* key, int keySize)

{

AES aes;

InitAES(aes,inSize,key,keySize,decrypt);

memcpy(aes.State,input,inSize);

InvCipherLoop(aes);

memcpy(aes.State,out,inSize);

}

/*

生成加密用的参数AES结构

int inSize 块大小

byte* 密钥

int 密钥长

返回AES结构指针

*/

AES *InitAES(AES *aes,int inSize, unsigned char *key, int keySize, TYPE type)

{

int Nb = inSize 2,

Nk = keySize 2,

Nr = Nb Nk ? Nk:Nb+6;

aes-Nb = Nb;

aes-Nk = Nk;

aes-Nr = Nr;

aes-Word = keyExpansion(key,Nb,Nr,Nk);

aes-State = new unsigned long[Nb+3];

if(type)

aes-State += 3;

return aes;

}

/*

生成加密用的参数AES结构

int inSize 块大小

byte* 密钥

int 密钥长

返回AES结构指针

*/

AES *InitAES(int inSize, unsigned char* key, int keySize,unsigned long type)

{

return InitAES(new AES(),inSize,key,keySize,type);

}

/*

*/

void CipherLoop(AES *aes)

{

unsigned char temp[4];

unsigned long *word8 = aes-Word,

*State = aes-State;

int Nb = aes-Nb,

Nr = aes-Nr;

int r;

for (r = 0; r Nb; ++r)

{

State[r] ^= word8[r];

}

for (int round =1; round {

word8 += Nb;

/*

假设Nb=4;

---------------------

| s0 | s1 | s2 | s3 |

---------------------

| s4 | s5 | s6 | s7 |

---------------------

| s8 | s9 | sa | sb |

---------------------

| sc | sd | se | sf |

---------------------

| | | | |

---------------------

| | | | |

---------------------

| | | | |

---------------------

*/

memcpy(State+Nb,State,12);

/*

Nb=4;

---------------------

| s0 | | | |

---------------------

| s4 | s5 | | |

---------------------

| s8 | s9 | sa | |

---------------------

| sc | sd | se | sf |

---------------------

| | s1 | s2 | s3 |

---------------------

| | | s6 | s7 |

---------------------

| | | | sb |

---------------------

*/

for(r =0; r {

/*

temp = {Sbox[s0],Sbox[s5],Sbox[sa],Sbox[sf]};

*/

temp[0] = Sbox[*((unsigned char*)State)];

temp[1] = Sbox[*((unsigned char*)(State+1)+1)];

temp[2] = Sbox[*((unsigned char*)(State+2)+2)];

temp[3] = Sbox[*((unsigned char*)(State+3)+3)];

*((unsigned char*)State) = Log_02[temp[0]] ^ Log_03[temp[1]] ^ temp[2] ^ temp[3];

*((unsigned char*)State+1) = Log_02[temp[1]] ^ Log_03[temp[2]] ^ temp[3] ^ temp[0];

*((unsigned char*)State+2) = Log_02[temp[2]] ^ Log_03[temp[3]] ^ temp[0] ^ temp[1];

*((unsigned char*)State+3) = Log_02[temp[3]] ^ Log_03[temp[0]] ^ temp[1] ^ temp[2];

*State ^= word8[r];

State++;

}

State -= Nb;

}

memcpy(State+Nb,State,12);

word8 += Nb;

for(r =0; r {

*((unsigned char*)State) = Sbox[*(unsigned char*)State];

*((unsigned char*)State+1) = Sbox[*((unsigned char*)(State+1)+1)];

*((unsigned char*)State+2) = Sbox[*((unsigned char*)(State+2)+2)];

*((unsigned char*)State+3) = Sbox[*((unsigned char*)(State+3)+3)];

*State ^= word8[r];

State++;

}

}

/*

解密时进行Nr轮逆运算

AES * aes 运行时参数

*/

void InvCipherLoop(AES *aes)

{

unsigned long *Word = aes-Word,

*State = aes-State;

int Nb = aes-Nb,

Nr = aes-Nr;

unsigned char temp[4];

int r =0;

Word += Nb*Nr;

for (r = 0; r Nb; ++r)

{

State[r] ^= Word[r];

}

State -= 3;

for (int round = Nr-1; round 0; --round)

{

/*

假设Nb=4;

---------------------

| | | | |

---------------------

| | | | |

---------------------

| | | | |

---------------------

| s0 | s1 | s2 | s3 |

---------------------

| s4 | s5 | s6 | s7 |

---------------------

| s8 | s9 | sa | sb |

---------------------

| sc | sd | se | sf |

---------------------

*/

memcpy(State,State+Nb,12);

/*

Nb=4;

---------------------

| | | | s7 |

---------------------

| | | sa | sb |

---------------------

| | sd | se | sf |

---------------------

| s0 | s1 | s2 | s3 |

---------------------

| s4 | s5 | s6 | |

---------------------

| s8 | s9 | | |

---------------------

| sc | | | |

---------------------

*/

Word -= Nb;

State += Nb+2;

for(r = Nb-1; r = 0; r--)

{

/*

temp = {iSbox[s0],iSbox[sd],iSbox[sa],iSbox[s7]};

*/

temp[0] = iSbox[*(byte*)State];

temp[1] = iSbox[*((byte*)(State-1)+1)];

temp[2] = iSbox[*((byte*)(State-2)+2)];

temp[3] = iSbox[*((byte*)(State-3)+3)];

*(unsigned long*)temp ^= Word[r];

*(unsigned char*)State = Log_0e[temp[0]] ^ Log_0b[temp[1]] ^ Log_0d[temp[2]] ^ Log_09[temp[3]];

*((unsigned char*)State+1) = Log_0e[temp[1]] ^ Log_0b[temp[2]] ^ Log_0d[temp[3]] ^ Log_09[temp[0]];

*((unsigned char*)State+2) = Log_0e[temp[2]] ^ Log_0b[temp[3]] ^ Log_0d[temp[0]] ^ Log_09[temp[1]];

*((unsigned char*)State+3) = Log_0e[temp[3]] ^ Log_0b[temp[0]] ^ Log_0d[temp[1]] ^ Log_09[temp[2]];

State --;

}

State -= 2;

}

Word -= Nb;

memcpy(State,State+Nb,12);

State += Nb+2;

for(r = Nb-1; r = 0; r--)

{

*(unsigned char*)State = iSbox[*(unsigned char*)State];

*((unsigned char*)State+1) = iSbox[*((unsigned char*)(State-1)+1)];

*((unsigned char*)State+2) = iSbox[*((unsigned char*)(State-2)+2)];

*((unsigned char*)State+3) = iSbox[*((unsigned char*)(State-3)+3)];

*State ^= Word[r];

State --;

}

}

/*

*--------------------------------------------

*|k0|k1|k2|k3|k4|k5|k6|k7|k8|k9|.......|Nk*4|

*--------------------------------------------

*Nr轮密钥库

*每个密钥列长度为Nb

*---------------------

*| k0 | k1 | k2 | k3 |

*---------------------

*| k4 | k5 | k6 | k7 |

*---------------------

*| k8 | k9 | ka | kb |

*---------------------

*| kc | kd | ke | kf |

*---------------------

*/

unsigned long* keyExpansion(byte* key, int Nb, int Nr, int Nk)

{

unsigned long *w =new unsigned long[Nb * (Nr+1)]; // 4 columns of bytes corresponds to a word

memcpy(w,key,Nk2);

unsigned long temp;

for (int c = Nk; c Nb * (Nr+1); ++c)

{

//把上一轮的最后一行放入temp

temp = w[c-1];

//判断是不是每一轮密钥的第一行

if (c % Nk == 0)

{

//左旋8位

temp = (temp8)|(temp24);

//查Sbox表

SubWord((byte*)temp);

temp ^= Rcon[c/Nk];

}

else if ( Nk 6 (c % Nk == 4) )

{

SubWord((byte*)temp);

}

//w[c-Nk] 为上一轮密钥的第一行

w[c] = w[c-Nk] ^ temp;

}

return w;

}

unsigned char* SubWord(unsigned char* word)

{

word[0] = Sbox[ word[0] ];

word[1] = Sbox[ word[1] ];

word[2] = Sbox[ word[2] ];

word[3] = Sbox[ word[3] ];

return word;

}

/*

释放AES结构和State和密钥库word

*/

void freeAES(AES *aes)

{

// for(int i=0;iNb;i++)

// {

// printf("%d\n",i);

// free(aes-State[i]);

// free(aes-Word[i]);

// }

// printf("sdffd");

}

有什么用AES加密算法的文件夹加密软件

这个我不清楚。

文件夹加密软件,我使用的是文件夹加密超级大师。

文件夹加密超级大师支持所有windows系统,可以加密文件夹,加密文件,保护磁盘和数据粉碎,使用起来非常方便。

在需要加密的文件和文件夹上单击鼠标右键选择加密就可以了。

解密时只要双击加密的文件夹和文件,输入正确的密码就可以解密。

文件夹加密超级大师加密后的文件和文件夹可以防止删除、复制和移动。

相对于其他的文件夹加密软件和文件加密软件,功能和性能还有操作都更加的出色。

并且有微软、360和金山的安全认证,是一款绝对安全的文件夹加密软件。

您可以到百度上下载文件夹加密超级大师来给您的文件和文件夹加密,看看使用效果怎么样?

app请求数据解密(AES)一

接下去两篇文章我们主要介绍安全分析过程中burp抓包完解密 经过加密的请求数据 ,并在新建的消息编辑器中打印输出。这篇文章主要先介绍测试app中加解密算法的分析与还原。

一、分析请求数据的加密算法

结果如下所示

二、还原加密算法并测试

在下一篇文章中,将介绍app请求数据解密插件的编写。该篇文章分析中用到frida脚本与还原后的算法,如果有需要,可以在公众号回复" AES Decrypt1 "获取。

app请求数据解密(AES)二

这篇文章主要介绍burp解密http请求数据插件的编写。根据上篇文章分析得到的AES加解密算法,我们要编写一个AES解密插件,将指定host的请求数据解密,并在新建的消息编辑器中显示。

一、AES解密插件用到的接口

二、解密插件的实现与使用

抓取我们过滤的特定的请求包测试

可以看到对特定的每个请求数据解密后在消息编辑器中输出

综上所述,该篇文章主要介绍了burp中自定义消息编辑器解密插件的编写。其中,我们可以依据自己的个人需求来指定需要过滤的请求,比如可以按照请求数据中包含的参数名称、请求头中包含的host、user-agent、Content-Type、请求链接url等,多个条件一起判断也可以。有需要插件源码的童鞋,可以在公众号回复" AES Decrypt2 "。

文件加密软件哪个最好用

文件加密软件最好用的如下:

1、隐身侠隐私文件加密工具

隐身侠加密软件是意畅公司自主研发,用于保护电脑及移动存储设备中的重要文件、私密信息以及多种程序的新一代电脑信息安全产品。隐身侠加密软件已获得公安部销售许可证、国家保密局检测证书、国家密码管理局销售许可证、国家版权局软件著作权证书等多项权威资质认证。

2、FileFriend

FileFriend是一款十分小巧的文件夹加密软件,使用这款完全中文的文件夹加密工具可以让你自由的对指定文件夹进行密码锁定,让除了你其他任何人都打不开这个文件夹。

3、密夹

密夹是国内领先的跨终端信息加密工具,支持多个终端,密夹文件加/解密、磁盘保险箱、加密传输、数据找回、手机加密备份等强大功能于一体,为用户提供信息数据安全保护。

4、闪电文件夹加密大师

闪电文件夹加密大师软件是一款专业强劲的数据加密软件,采用一种区块加密标准AES加密,加密速度快、安全性高、资源消耗低,不仅拥有文件/文件夹加密、解密、打开等功能,而且本地加密/解密,更安全,更高效,同时界面简洁,操作方便。

5、Lockdir

Lockdir是一款安全性高、使用简单、体积极小的便携式文件夹加密器,无需安装,一键加密,一键解密,加密算法高,是优秀的加密工具。