如何加密图片
png图片详解与加密解密方法
png图片详解与加密解密方法PNG文件格式分为PNG-24和PNG-8,其最大的区别是PNG-24是用24位来保存一个像素值,是真彩色,而PNG-8是用8位索引值来在调色盘中索引一个颜色,因为一个索引值的最大上限为2的8次方既128,故调色盘中颜色数最多为128种,所以该文件格式又被叫做PNG-8 128仿色。
PNG-24因为其图片容量过大,而且在Nokia和Moto等某些机型上创建图片失败和显示不正确等异常时有发生,有时还会严重拖慢显示速度,故并不常用,CoCoMo认为这些异常和平台底层的图像解压不无关系。
不过该格式最大的优点是可以保存Alpha通道,同事也曾有过利用该图片格式实现Alpha 混合的先例,想来随着技术的发展,手机硬件平台的提升,Alpha混合一定会被广泛的应用,到那时该格式的最大优势才会真正发挥。
PNG-8文件是目前广泛应用的PNG图像格式,其主要有六大块组成: 1.PNG文件标志,为固定的64个字节:0x89504e47 0x0d0a1a0a 2.文件头数据块IHDR(header chunk) 3.调色板数据块PLTE(palette chunk) 4.sBIT,tRNS块 等。
5.图像数据块IDAT(image data chunk) 6.图像结束数据IEND(image trailer chunk),固定的96个字节:0x00000000 0x49454e44 0xae426082 这六大块按顺序排列,也就是说IDAT块永远是在PLTE块之后,期间也会有许多其他的区块用来描述信息,例如图像的最后修改时间是多少,图像的创建者是谁等… 数据块1-4: 除了PNG文件标志,其中四大数据块和文件尾都是由统一的数据块文件结构描述的: Chunk Length: 4byte Chunk Type: 4byte Chunk Data: Chunk Length的长度 Chunk CRC: 4byte 例如IHDR块的数据长度为13,即 Chunk Length = 13 Chunk Type ="IHDR"IHDR块: 用来描述图像的基本信息,其格式为: 图像宽:4byte 图像高:4byte 图像色深:4byte 颜色类型:1byte 压缩方法:1byte 滤波方法:1byte 扫描方法:1bytePLTE块: 这个就是传说中放置调色盘数据的地方啦,其格式为: 循环 RED:1byte GREEN:1byte BLUE:1byte END 循环长度嘛,不就是Chunk Length / 3的长度嘛,而且Chunk Length一定为3的倍数。
用DES算法对图片进行加密解密
⽤DES算法对图⽚进⾏加密解密//main.cpp#include "DES.h"#include#include#includeusing namespace std;void Encrypt_Mode(void);void Test_Mode(void);int main(){int choose;cout<<"\t\t\t#### S-BOX Design ####"<cout<<"/doc/ab8470310.htmle Standard S-Box\/doc/ab8470310.htmle Random S-Box\/doc/ab8470310.htmle Linearity S-Box\n4.My Design S-Box"<cout<<"Your Choose: ";cin>>choose;if( (choose != 1) && (choose != 2) && (choose != 3) && (choose != 4) ){cout<<"Error Choose!"<return 1;}system("cls");switch(choose){case 1:break;case 2:GetRandSBox();break;case 3:GetLineSBox();break;case 4:MySBox();break;}cout<<"\t\t\t#### DES Encrypt System ####"<cout<<"1.Encrypt Mode\n2.Test Mode"<cout<<"Your Choose: "; cin>>choose;system("cls");switch(choose){case 1:Encrypt_Mode();break;case 2:Test_Mode();break;default:cout<<"Error Choose!"<}return 0;}////////////////////////////////////////////////////////////////////////////////////void Encrypt_Mode(){uvar32 FileSize,Offset,DataSize;char IV[]="wang yao";char key[8]={1,9,8,7,0,3,1,4};char plaint[8]={0},crypt[8]={0};//string Header;char Header[HEAD_LEN];ifstream fin;ofstream fout;int choose;while(true){cout<<"\t\t\tDES Encrypt BMP File System"<cout<<"\n1.EBC ENCRYPT\n2.EBC DECRYPT\n3.CBC ENCRYPT\n4.CBC DECRYPT\n5.Exit"<cout<<"Your Choose: ";cin>>choose;if(choose == 5)break;else if( (choose != 1) && (choose != 2) && (choose != 3) && (choose != 4) ){cout<<"Wrong Choose!"<break;}cout << "Enter the file's name: ";string filename;cin >> filename;ifstream fin(filename.c_str(),ios::binary);string outfilename = filename;outfilename = "out_" + outfilename;ofstream fout(outfilename.c_str(),ios::binary);if(!fin || !fout){cout<<"Open File Error!"<return;}fin.seekg(2); //Skip "BM"(the head of the BMP file)fin.read((char*)&FileSize ,sizeof(uvar32)); //Get the BMP File Sizefin.seekg(sizeof(uvar32),ios_base::cur); //Skip the Reserved Fieldfin.read((char*)&Offset ,sizeof(uvar32)); //Get the Offset of the Real SizeDataSize = FileSize - Offset; //Get the Data Size;Also can be done by "DataSize" Field in the Header//Set the KeyDes_SetKey(key);//Copy the Header to encrypt filefin.seekg(ios::beg);fin.read(Header,Offset);fout.write(Header,Offset);memcpy(crypt,IV,8); //Get the IV key//Do DES Encryptfor(int i=0;i < DataSize/8;i++){fin.read(plaint,8);switch(choose){case 1: //ECB DES ENCRYPTECB_Des_Run(crypt,plaint, ENCRYPT);fout.write(crypt,8);break;case 2: //ECB DES DECRYPTECB_Des_Run(crypt,plaint, DECRYPT);fout.write(crypt,8);break;case 3: //CBC DES ENCRYPTCBC_Des_Run(crypt,plaint, ENCRYPT);fout.write(crypt,8);break;case 4: //CBC DES DECRYPTCBC_Des_Run(crypt,plaint, DECRYPT);fout.write(crypt,8);memcpy(crypt,plaint,8); //Get the IV key}}system("cls");}fin.close();fout.close();system("pause");}void Test_Mode(){bool PlaintBits1[64]={0},PlaintBits2[64]={0}; //Snowslip_Testbool PlaintBits[PLAINT_SIZE][64]; //Completeness_Testint choose;while (true){cout<<"\t\t\t#### DES Test Mode ####"<cout<<"1.Snowslip Test\/doc/ab8470310.html pleteness Test\n3.Differential Cryptanalysis Test\n4.Exit"<cout<<"Your Choose: ";cin>>choose;if (choose == 4)break;switch(choose){case 1://Snowslip_TestGetRandPlaint_Snowslip(PlaintBits1,PlaintBits2);Snowslip_Test(PlaintBits1,PlaintBits2);break;case 2://Completeness_TestGetRandPlaint_Complete(PlaintBits);Completeness_Test(PlaintBits);break;case 3:Differential_Analysis();break;default:cout<<"Error Choose!"<}system("pause");system("cls");}}//~main.cpp以下为des的代码://DES.cpp#include#include#include#include#include "DES.h"using namespace std;////////////////////////////////////////////////////////////////////// initial permutation IPconst static char IP_Table[64] = {58, 50, 42, 34, 26, 18, 10, 2, 60, 52, 44, 36, 28, 20, 12, 4,62, 54, 46, 38, 30, 22, 14, 6, 64, 56, 48, 40, 32, 24, 16, 8,57, 49, 41, 33, 25, 17, 9, 1, 59, 51, 43, 35, 27, 19, 11, 3,61, 53, 45, 37, 29, 21, 13, 5, 63, 55, 47, 39, 31, 23, 15, 7};// final permutation IP^-1const static char IPR_Table[64] = {40, 8, 48, 16, 56, 24, 64, 32, 39, 7, 47, 15,55, 23, 63, 31,38, 6, 46, 14, 54, 22, 62, 30, 37, 5, 45, 13, 53, 21, 61, 29,36, 4, 44, 12, 52, 20, 60, 28, 35, 3, 43, 11, 51, 19, 59, 27,34, 2, 42, 10, 50, 18, 58, 26, 33, 1, 41, 9, 49, 17, 57, 25};// expansion operation matrixstatic const char E_Table[48] = {32, 1, 2, 3, 4, 5, 4, 5, 6, 7, 8, 9,8, 9, 10, 11, 12, 13, 12, 13, 14, 15, 16, 17,16, 17, 18, 19, 20, 21, 20, 21, 22, 23, 24, 25,24, 25, 26, 27, 28, 29, 28, 29, 30, 31, 32, 1};// 32-bit permutation function P used on the output of the S-boxes const static char P_Table[32] = {16, 7, 20, 21, 29, 12, 28, 17, 1, 15, 23, 26, 5, 18, 31, 10,2, 8, 24, 14, 32, 27, 3, 9, 19, 13, 30, 6, 22, 11, 4, 25};// permuted choice table (key)const static char PC1_Table[56] = {57, 49, 41, 33, 25, 17, 9, 1, 58, 50, 42, 34, 26, 18,10, 2, 59, 51, 43, 35, 27, 19, 11, 3, 60, 52, 44, 36,63, 55, 47, 39, 31, 23, 15, 7, 62, 54, 46, 38, 30, 22,14, 6, 61, 53, 45, 37, 29, 21, 13, 5, 28, 20, 12, 4};// permuted choice key (table)const static char PC2_Table[48] = {14, 17, 11, 24, 1, 5, 3, 28, 15, 6, 21, 10,23, 19, 12, 4, 26, 8, 16, 7, 27, 20, 13, 2,41, 52, 31, 37, 47, 55, 30, 40, 51, 45, 33, 48, 44, 49, 39, 56, 34, 53, 46, 42, 50, 36, 29, 32 };// number left rotations of pc1const static char LOOP_Table[16] = {1,1,2,2,2,2,2,2,1,2,2,2,2,2,2,1};//extern char S_Box[8][4][16];// The (in)famous S-boxes//const static char S_Box[8][4][16] = {static char S_Box[8][4][16] = {// S114, 4, 13, 1, 2, 15, 11, 8, 3, 10, 6, 12, 5, 9, 0, 7, 0, 15, 7, 4, 14, 2, 13, 1, 10, 6, 12, 11, 9, 5, 3, 8, 4, 1, 14, 8, 13, 6, 2, 11, 15, 12, 9, 7, 3, 10, 5, 0, 15, 12, 8, 2, 4, 9, 1, 7, 5, 11, 3, 14, 10, 0, 6, 13, // S215, 1, 8, 14, 6, 11, 3, 4, 9, 7, 2, 13, 12, 0, 5, 10, 3, 13, 4, 7, 15, 2, 8, 14, 12, 0, 1, 10, 6, 9, 11, 5, 0, 14, 7, 11, 10, 4, 13, 1, 5, 8, 12, 6, 9, 3, 2, 15, 13, 8, 10, 1, 3, 15, 4, 2, 11, 6, 7, 12, 0, 5, 14, 9, // S310, 0, 9, 14, 6, 3, 15, 5, 1, 13, 12, 7, 11, 4, 2, 8, 13, 7, 0, 9, 3, 4, 6, 10, 2, 8, 5, 14, 12, 11, 15, 1, 13, 6, 4, 9, 8, 15, 3, 0, 11, 1, 2, 12, 5, 10, 14, 7, 1, 10, 13, 0, 6, 9, 8, 7, 4, 15, 14, 3, 11, 5, 2, 12, // S47, 13, 14, 3, 0, 6, 9, 10, 1, 2, 8, 5, 11, 12, 4, 15, 13, 8, 11, 5, 6, 15, 0, 3, 4, 7, 2, 12, 1, 10, 14, 9, 10, 6, 9, 0, 12, 11, 7, 13, 15, 1, 3, 14, 5, 2, 8, 4, 3, 15, 0, 6, 10, 1, 13, 8, 9, 4, 5, 11, 12, 7, 2, 14, // S52, 12, 4, 1, 7, 10, 11, 6, 8, 5, 3, 15, 13, 0, 14, 9, 14, 11, 2, 12, 4, 7, 13, 1, 5, 0, 15, 10, 3, 9, 8, 6, 4, 2, 1, 11, 10, 13,7, 8, 15, 9, 12, 5, 6, 3, 0, 14,11, 8, 12, 7, 1, 14, 2, 13, 6, 15, 0, 9, 10, 4, 5, 3, // S612, 1, 10, 15, 9, 2, 6, 8, 0, 13, 3, 4, 14, 7, 5, 11, 10, 15, 4, 2, 7, 12, 9, 5, 6, 1, 13, 14, 0, 11, 3, 8, 9, 14, 15, 5, 2, 8, 12, 3, 7, 0, 4, 10, 1, 13, 11, 6, 4, 3, 2, 12, 9, 5, 15, 10, 11, 14, 1, 7, 6, 0, 8, 13, // S74, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1, 13, 0, 11, 7, 4, 9, 1, 10, 14, 3, 5, 12, 2, 15, 8, 6, 1, 4, 11, 13, 12, 3, 7, 14, 10, 15, 6, 8, 0, 5, 9, 2, 6, 11, 13, 8, 1, 4, 10, 7, 9, 5, 0, 15, 14, 2, 3, 12, // S813, 2, 8, 4, 6, 15, 11, 1, 10, 9, 3, 14, 5, 0, 12, 7, 1, 15, 13, 8, 10, 3, 7, 4, 12, 5, 6, 11, 0, 14, 9, 2, 7, 11, 4, 1, 9, 12, 14, 2, 0, 6, 10, 13, 15, 3, 5, 8, 2, 1, 14, 7, 4, 10, 8, 13, 15, 12, 9, 0, 3, 5, 6, 11 };//////////////////////////////////////////////////////////////////////////static bool SubKey[16][48];// 16圈⼦密钥//////////////////////////////////////////////////////////////////////////void ECB_Des_Run(char Out[8], char In[8], bool Type) {static bool M[64], Tmp[32], *Li = &M[0], *Ri = &M[32]; ByteToBit(M, In, 64);Transform(M, M, IP_Table, 64);if( Type == ENCRYPT ){//fk(L,R) = (L^F(R,SK),R)for(int i=0; i<16; i++) {memcpy(Tmp, Ri, 32);F_func(Ri, SubKey[i]);Xor(Ri, Li, 32);memcpy(Li, Tmp, 32);}}else{for(int i=15; i>=0; i--) {memcpy(Tmp, Li, 32);F_func(Li, SubKey[i]);Xor(Li, Ri, 32);memcpy(Ri, Tmp, 32);}}Transform(M, M, IPR_Table, 64);BitToByte(Out, M, 64);}void CBC_Des_Run(char Out[8], char In[8], bool Type) {static bool M[64],N[64], Tmp[32], *Li = &M[0], *Ri = &M[32]; ByteToBit(M, In, 64);ByteToBit(N, Out, 64);if (Type == ENCRYPT)Xor(M,N, 64);Transform(M, M, IP_Table, 64);if( Type == ENCRYPT ){//fk(L,R) = (L^F(R,SK),R)for(int i=0; i<16; i++) {memcpy(Tmp, Ri, 32);F_func(Ri, SubKey[i]);Xor(Ri, Li, 32);memcpy(Li, Tmp, 32);}}else{for(int i=15; i>=0; i--) {memcpy(Tmp, Li, 32);F_func(Li, SubKey[i]);Xor(Li, Ri, 32);memcpy(Ri, Tmp, 32);}}Transform(M, M, IPR_Table, 64);if(Type == DECRYPT)Xor(M,N, 64);BitToByte(Out, M, 64);//BitToByte(In, N, 64);}void Des_SetKey(const char Key[8]){static bool K[64], *KL = &K[0], *KR = &K[28];ByteToBit(K, Key, 64);//PC1 TransformTransform(K, K, PC1_Table, 56);for(int i=0; i<16; i++) {RotateL(KL, 28, LOOP_Table[i]); //Left shift circleRotateL(KR, 28, LOOP_Table[i]);//PC2 TransformTransform(SubKey[i], K, PC2_Table, 48);}}//A Round of DESvoid F_func(bool In[32], const bool Ki[48]){static bool MR[48];//E TransformTransform(MR, In, E_Table, 48);Xor(MR, Ki, 48);S_func(In, MR); //S BOX//P TransformTransform(In, In, P_Table, 32);}//S BOX/*void S_func(bool Out[32], const bool In[48]){//i<8 <==> 8's S-BOX;In(6)==>Out(4)for(char i=0,j,k; i<8; i++,In+=6,Out+=4) {j = (In[0]<<1) + In[5];k = (In[1]<<3) + (In[2]<<2) + (In[3]<<1) + In[4];ByteToBit(Out, &S_Box[i][j][k], 4);}}*/void S_func(bool Out[32], const bool In[48]){//i<8 <==> 8's S-BOX;In(6)==>Out(4)for(char i=0,j,k; i<8; i++,In+=6,Out+=4) {j = (In[0]<<1) + In[5];k = (In[1]<<3) + (In[2]<<2) + (In[3]<<1) + In[4];ByteToBit(Out, &S_Box[i][j][k], 4);}}//Trabsform through TABLEvoid Transform(bool *Out, bool *In, const char *Table, int len) {static bool Tmp[256];for(int i=0; iTmp[i] = In[ Table[i]-1 ];memcpy(Out, Tmp, len);}void Xor(bool *InA, const bool *InB, int len){for(int i=0; iInA[i] ^= InB[i];}void RotateL(bool *In, int len, int loop){static bool Tmp[256];//Store the first (loop) bits to Tmpmemcpy(Tmp, In, loop);//Copy the end ofthe (len-loop) bits to the front of Inmemcpy(In, In+loop, len-loop);//Move the Stored (loop) bits to the end of Nes In memcpy(In+len-loop, Tmp, loop);}void ByteToBit(bool *Out, const char *In, int bits) {for(int i=0; iOut[i] = (In[i/8]>>(i%8)) & 1;//Get the last of the Byte}void BitToByte(char *Out, const bool *In, int bits) {memset(Out, 0, (bits+7)/8);for(int i=0; iOut[i/8] |= In[i]<<(i%8);}void GetRandSBox(){int Temp[16]={0},MaxIndex=15;for(int i=0;i<16;i++)Temp[i] = i;// int Mark[16]={0};srand((unsigned)time(NULL));for(int i = 0;i<8;i++){for(int j=0;j<4;j++){//RandBOX(S_Box[i][j]);for(int k=0;k<16;k++){int temp = rand()%(MaxIndex+1);S_Box[i][j][k] = Temp[temp];if (MaxIndex > temp)Temp[temp] = Temp[MaxIndex];MaxIndex--;// cout<}MaxIndex = 15;for(int l=0;l<16;l++)Temp[l] = l;}}}/*void GetRandSBox(){int Mark[16]={0};srand((unsigned)time(NULL));for(int i = 0;i<8;i++)for(int j=0;j<4;j++){//RandBOX(S_Box[i][j]);for(int k=0;k<16;k++){GETRAND:int temp = rand()%16;if(Mark[temp] == 0){S_Box[i][j][temp] = k;//cout<Mark[temp] = 1;}elsegoto GETRAND;}//Reset the Markfor (int k=0;k<16;k++)Mark[k] = 0;}}*///Input:(a,b,c,d,e,f)//Output:(b,c,d,e)//(a,b,c,d,e,f)==>(b,c,d,e)//Also can be: (a,b,c,d,e,f)==>(b,c,a^d,e^f)void GetLineSBox(void){for(int j=0;j<4;j++)//RandBOX(S_Box[i][j]);for(int k=0;k<16;k++)for(int i = 0;i<8;i++)S_Box[i][j][k] = k;}//Input:(a,b,c,d,e,f)//Output:(q,r,s,t)// q=abcd^00ef// r=abef^00cd// s=cdef^00ab// t=cdab^ef00void MySBox(void){}////////////////////////////////////////////////////////////////////////////Test Mode Methodvoid Snowslip_Test(bool Plaint1[64],bool Plaint2[64]) {static bool Tmp[32], *Li1 = &Plaint1[0], *Ri1 = &Plaint1[32]; static bool *Li2 = &Plaint2[0], *Ri2 = &Plaint2[32];//ByteToBit(M, In, 64);//Transform(M, M, IP_Table, 64);//fk(L,R) = (L^F(R,SK),R)for(int i=0; i<16; i++) {memcpy(Tmp, Ri1, 32);F_func(Ri1, SubKey[i]);Xor(Ri1, Li1, 32);memcpy(Li1, Tmp, 32);memcpy(Tmp, Ri2, 32);F_func(Ri2, SubKey[i]);Xor(Ri2, Li2, 32);memcpy(Li2, Tmp, 32);int count = 0;for (int j=0;j<64;j++)if (Plaint1[j] != Plaint2[j])count++;//cout<<"The "<cout<<"The "<}}void Completeness_Test(bool Text[PLAINT_SIZE][64]){static bool Tmp[32], *Li , *Ri;int count[64][2]={0};//ByteToBit(M, In, 64);//Transform(M, M, IP_Table, 64);for(int i=0;i{Li = &Text[i][0];Ri = &Text[i][32];//fk(L,R) = (L^F(R,SK),R)for(int j=0; j<16; j++){memcpy(Tmp, Ri, 32);F_func(Ri, SubKey[i]);Xor(Ri, Li, 32);memcpy(Li, Tmp, 32);}for (int k = 0;k < 64;k++){if (Text[i][k] == 0)count[k][0]++;elsecount[k][1]++;}}//Get the frequencycout<<"Every bit is 0's frequency: "<for (int i=0;i<64;i++)cout<<"The "<}void GetRandPlaint_Snowslip(bool PlaintBits1[64],bool PlaintBits2[64]) {// char Out1[8]={0},Out2[8]={0};//static bool PlaintBits1[64],PlaintBits2[64];srand((unsigned)time(NULL));int tempindex = rand()%64;int tempvalue = rand()%2;PlaintBits1[tempindex] = tempvalue;PlaintBits2[tempindex] = tempvalue ^1;for(int i = 0;i<64;i++)if (i != tempindex){tempvalue = rand()%2;PlaintBits1[i] = tempvalue;PlaintBits2[i] = tempvalue;}}void GetRandPlaint_Complete(bool PlaintBits[PLAINT_SIZE][64]) {srand((unsigned)time(NULL));int tempindex = rand()%64;int tempvalue1 = rand()%2;for (int i=0;i{PlaintBits[i][tempindex] = tempvalue1;for(int j = 0;j<64;j++)if (j != tempindex){int tempvalue2 = rand()%2;PlaintBits[i][j] = tempvalue2;}}}void Differential_Analysis(void){int count[8][64][16]={0};//Used count the Differential Distributing for (int i = 0;i<8;i++){cout<<"The "<for (int l=0;l<16;l++)cout<<" "<cout<for (int j = 0;j<64;j++){bool In[6]={0};int2bin(j,In,6);for (int k=0;k<64;k++){bool In1[6]={0},In2[6]={0},Out1[4]={0},Out2[4]={0};int2bin(k,In1,6);S_Box_single(In1,Out1,i);int2bin(j^k,In2,6); // Xor(In,In1,6);S_Box_single(In2,Out2,i);Xor(Out1,Out2,4); //Out1 <== Out1 ^ Out2 (Out == Out1)count[i][j][bin2int(Out1,4)] ++;}cout<for (int l=0;l<16;l++)cout<cout<}cout<system("pause");}}void S_Box_single(bool In[6],bool Out[4],int num){int Line = 2*In[0] + In[5];int Row = 8*In[1]+4*In[2]+2*In[3]+In[4];int2bin(S_Box[num][Line][Row],Out,4);}void int2bin(int var,bool *bin,int bin_size) {char temp = (unsigned char)var;for(int i=0;i{bin[i] = temp & 0x01;temp >>= 1;}}int bin2int(bool bin[],int bin_size){int var = 0;for(int i=0;ivar = 2*var + bin[bin_size-1-i]; return var;}。
安卓手机怎么对文件夹加密
安卓手机怎么对文件夹加密安卓手机怎么对文件夹加密 1第一种方法、用手机锁加密。
得用手机锁将打开该文件的程序锁定,没有密码就打不开这程序,从而达到文件加密的目的。
第二种方法、用移位的方式加密。
就是把想要隐藏的文件夹放如隐藏文件夹如System里面,这样你的文件就不会显示出来了。
这个方法隐藏文件很好用,但要想把这个隐藏文件给找出来,就很烦了,当然有电脑那就另当别论了。
第三种方法、更改后缀名加密。
利用自带的文件管理更改图片、视频、声音文件的后缀名,然后更改后的文件就不会在多媒体里出现,如需要查看时,将后缀名改回即可。
第四种方法、用文件锁Best_Crypto加密。
该软件可以对手机C/D/E各个文件夹内的文件夹加密,可以对jpg,gif,sis,3gp,mp4等文件加密,是出的比较早的S60第三版的加密软件,其加密的方法是复制原文件后进行加密。
第五种方法、用文件动力、Y-管理器或Q-管理器加密。
将文件夹的属性更改为隐藏,然后将需要加密的文件移动到该文件夹即可。
但在实践过程中发现,在多媒体里查看过的文件,即使该文件移动到隐藏文件夹后依然可以在多媒体里查看到,解决的'方法为:将文件移动到隐藏文件夹后,更改该文件夹的名字。
第六种方法、用电话精灵加密。
电话精灵的加密功能极其强大,可以对短信、通话记录和文件加密,在此本人只讲讲文件加密的方法:进入电话精灵--文件管理器--输入密码(如未改密码,则为默认的123)--找到需要加密的文件--选项--加密(多个文件加密,则先进行标记,然后加密)。
电话精灵只能加密文件,不能加密文件夹,加密后的文件,用Y-管理器或Q-管理器可以查看到,但不能打开,解密时只需进入电话精灵的文件管理,点选项后选解密即可。
这六种手机文件夹加密方法是最常见的方法,也是最实用的一些方法,用这六种方法把手机文件加密,基本没人能够进去文件夹,在这里提醒下朋友们哦,如何是特别重要的文件,可以自己保存在内存卡内,把内存卡从手机中拿出来,随身拿着内存卡,平时,有陌生人借手机的话,一定要注意哦,如果泄露了自己的一些文件,资料,那么就追悔莫及了。
jpg图片怎么加密,jpg格式图片加密方法
jpg图片怎么加密,jpg格式图片加密方法在windows下对图片直接进行加密的方法是不多的,比如使用bitlocker、压缩文件等方式,这些方法小编都跟大家介绍过,各有优缺点,今天小编再来介绍下其他的方法。
一、修改后缀名。
1、对于jpg图片的加密我们还可以直接修改后缀名,这样文件根本无法打开,不清楚的人也不知道这个文件具体是什么文件,起到保护的作用。
在jpg图片上方点击右键,在弹出的菜单中点击重命名。
2、直接把后缀JPG修改为TXT,然后在空白处点击一下鼠标左键,在弹出的窗口中点击确定。
3、再次双击打开更改过后缀的文件,是不是现实了乱码,无法正常查看了?4、如果我们需要查看也很简单,直接相同的操作把后缀修改回来即可。
二、隐藏文件。
1、在JPG图片上方点击右键,在弹出的窗口中点击属性。
2、在弹出的窗口下方找到并勾选隐藏,点击确定,图片是不是隐藏起来了?3、如果我们需要看到隐藏图片该怎么办呢,也很简单,在窗口上方点击查看,在右侧找到并勾选隐藏的项目即可。
三、使用硬加密U盘加密。
1、对于一些需要移动的JPG图片我们可以通过硬加密U盘来进行加密,这里小编以在用的大势至防泄密U盘为例进行介绍,把该U盘接入电脑,打开此电脑,找到主控系统所在的磁盘,双击安装。
2、返回电脑桌面找到快捷方式,双击打开根据提示设置管理模式密码和密保,点击确定进入了普通模式,在这个模式是无法访问任何U盘内的文件的。
3、依次点击选项—模式切换,根据提示输入管理模式密码,点击确定。
4、把需要加密的JPG图片拷贝进去就行了,当退出管理模式时即可完成加密,如果需要对普通模式进行一定的授权,可以在右上角点击防拷选项。
5、根据需要勾选对应的权限即可。
acdsee练习题
acdsee练习题一、基础操作1. 请简述acdsee软件的启动方式。
2. 如何在acdsee中浏览和查看图片?3. 请描述acdsee中的“缩略图”和“详细列表”两种查看方式的区别。
4. 如何在acdsee中创建新的文件夹?5. 如何在acdsee中复制、移动和删除图片?6. 请说明acdsee中的“回收站”功能。
7. 如何在acdsee中调整图片的亮度、对比度和饱和度?8. 请描述acdsee中的“旋转”和“翻转”功能。
9. 如何在acdsee中批量重命名图片?10. 请简述acdsee中的“打印”功能。
二、高级操作1. 如何在acdsee中创建和管理相册?2. 请描述acdsee中的“标签”功能。
3. 如何在acdsee中使用“搜索”功能查找图片?4. 请简述acdsee中的“幻灯片放映”功能。
5. 如何在acdsee中添加和编辑图片的元数据?6. 请描述acdsee中的“批量转换”功能。
7. 如何在acdsee中创建和管理“收藏夹”?8. 请说明acdsee中的“屏幕截图”功能。
9. 如何在acdsee中调整图片的尺寸和分辨率?10. 请描述acdsee中的“水印”功能。
三、图片处理1. 如何在acdsee中使用“裁剪”工具?2. 请描述acdsee中的“红眼”修复功能。
3. 如何在acdsee中调整图片的色彩平衡?4. 请说明acdsee中的“锐化”和“模糊”功能。
5. 如何在acdsee中去除图片上的噪点?6. 请描述acdsee中的“克隆”和“修复画笔”功能。
7. 如何在acdsee中为图片添加文字注释?8. 请说明acdsee中的“滤镜”功能。
9. 如何在acdsee中制作“全景图”?10. 请描述acdsee中的“图像合成”功能。
四、输出与分享1. 如何在acdsee中将图片导出为其他格式?2. 请描述acdsee中的“电子邮件发送”功能。
3. 如何在acdsee中创建“屏幕保护程序”?4. 请说明acdsee中的“打印日历”功能。
保护隐私文件的十种方法大全
保护隐私文件的方法大全及对比摘要:在生活中每个人都有自己的秘密,也有很多数据文件不想让别人看到,现在我将所有保护隐私文件的方法一一例举出来,最后会有一个简单的各类方法的比较。
方法一:给自己的隐私文件、文件夹加密(1)加密之中最简单方便的便是通过一般电脑都有的压缩文件软件来加密,我以给文件加密来演示下:第一步:首先右击需加密的文件,选择压缩选项,然后会出现如下图:第二步:选择第二个密码选项,输入密码:当初加密的密码便可,对一个文件夹的也如此,在此不再重复操作:(2)对文件、文件夹的加密还可以通过其它专门给文件加密的软件来实现,例如:文件夹加密超级大师(个人比较推荐,因为它具有文件加密、文件夹加密、数据粉碎、彻底隐藏硬盘分区、禁止或只读使用USB设备等功能,操作简单方便),Jetico公司的BestCrypt、PGP公司的PGP、GnuPG等。
反思:通过给文件、文件夹加密的方式可以较好的保护自己的隐私,但是如果盗取隐私的人懂得如何运用Password Recovery软件的话还是可以通过破解密码来获取隐私,对此可以通过加强密码强度(特殊符号、不规则组合、长密码)来增强自己的文件加密强度,使得对方即使得到文件也不一定能破解开或者需要很长的时间来破解。
方法二:更改后缀名来保护隐私文件:例如桌面上有一个word文档,现在我将它的后缀名“doc”改为“flv”这时当我们打开这个flv文档时系统会提示如下:当你需要打开时你可以将后缀名重新改为doc打开或者在word中打开这个文件来完成。
Ps:有些同学可能会说他的电脑中的文件都是没有后缀名的,我们可以打开计算机,然后选择第二行中的工具,再选择文件夹选项便会出现如下界面,选择查看,将“隐藏已知文件类型的拓展名”前面的那个勾点击取消之后文件的后缀名便会显示出来了反思:更改后缀名来保护隐私文件有着很好的效果,因为除了本人之外其它人并不知道这个文件的原来的格式应该是如何的,另外也可以将自己的隐私文件的名称改为一些不大敏感的文件名称,也可以起到一个很好的保护作用。
电脑密码设置与解密(一)
电脑密码设置与解密(一)分类:论文集电脑开机密码设置(一) 设置开机密码、设置屏保密码、设置文件密码都是有益的一些保护措施,但也不能对密码的有效程度过分信赖,因为这些密码对于专业人员来说都是极易破解的。
但对于一般办公环境来说,设置开机密码还是有相当作用的。
下面我们来看一下在BIOS中如何设置开机密码。
开机后按键盘的Delete键进入BIOS界面。
找到User Password选项,其默认为关闭状态。
激活并输入用户密码(1~8位,英文或者数字)。
电脑提示请再输入一遍以确认密码无误,保存退出后重新启动机器,这时就会在开机时出现密码菜单。
一、系统级加密三、专业级加密四、写在最后本文从用户和攻击者两个角度探讨了常见的加密和解密操作,但是并没有涉及网络攻击等方面的内容。
同时还要知道,攻击者不会只使用上面讲到的软件来进行破解工作,写这篇文章的目的就是想让大家换位思考,了解一下攻击者的思路,做到知已知彼。
最后,笔者总结了十条电脑安全操作的原则和大家一起分享,也以此作为本文的结束。
1. 对自己的主机要格外留心。
让陌生人接触到主机就是最危险的开端。
2. 不断升级自己的操作系统和杀毒软件。
下载新版的SP包(Service Pack 软件补丁包)堵住已知的操作系统漏洞;升级最新的杀毒软件,防止病毒或木马进入电脑。
3. 对重要文件一定要在文件级别上进行加密。
这样无论将文件拷到任何一台电脑上都需要解密后才能使用,增加被攻击者截获的文件安全性。
4. 非常重要的文件应使用多种方法进行嵌套加密以提高安全性。
最简单的例子,可以用Word设置一个密码,再将这个已加密的Word文件使用ABI-Coder二次加密。
5. 千万不要使用自己的名字、生日、电话号码或常见英文单词等容易被外人猜到的序列做密码,因为这样的密码跟没有密码一样,太容易破解了,而且尽量要使用多个密码,切忌一个密码既可以收取邮件、又可以打开加密文件、还可以访问内部局域网。
照片加密、图片加密哪个好
忪选择硬加 的图 片 件或 照片‘ 文件 丧.
片种 子 对 图 片 、 照 片 进行 加密
然 就 可 以进 t S -  ̄ l 1 了
f l 『 { 信大家 部听过 罔片种子吧 ,
把网友们分享的图 片
..
同时 . 这歉软 还可 进 行 通 J J 1 】 密、 移动J J 1 】 南袖高级 力 I l l 1 _ “ 通J J 1 ” 】 就 本机_ 』 J I ] 密. 然后 本机打开访问时
首先我们选择 一张图片 , 将 B T文件链接放 住 T XT L { 1 。 将T X T格式 文件 压缩成 RA R 格式 。 把“ c o p y A . j p g / b + B . r a r = C. j p g ”这 行代码 复制进去 , A. j p g 刚刚的 J P G图 片名称, r u 箍或 j £ 他电1 l l 寸 f : 时需婴输 入密码才可 以进入。 “ 磁 胜J J l l 密” 可 置圳 件的访问权 . 也就是访问7 J l 】 密
3 3
j Qu e y r Au t o t a b
Ma t t h e w Mi l l e r 的j Qu e r y A u t o t a b插件 .允许你 为任何表 单输 人定 义一定长 吱 , 以便 i 芏完成后 自动选择下 ・ 个表 . 它
景 适 合 于需 《 一 定 数 量 字 符 ( 如 电 话 号 码 或 生 曰) 的 字段 。
等 。 如 何 对 这 砦 图 ” 文件进行加 密呢 ? 1 『 以通 过 以下 方法 。
方 法 一 、 采 用 图
‘ 凄将文 的后缀 钇
I k A R就 r 叮 以解 了。
方法二 、 通 过 电脑 文 件 加 密 软 件 进 行 图 片 文 件 加 密 、 加 密 照 片 文 件
PPT文件的加密、解密与免密破解
PPT⽂件的加密、解密与免密破解时下今⽇,PPT 已然成为职场和商演不可或缺的⼯具,从企业到个⼈,从总结到演讲,从路演到产品发布会,都离不开 PPT。
在当下共享的互联⽹⼤背景下,知识产权的觉醒,使越来越多的⼈开始选择各种各样的⼿段来保护⾃⼰知识作品不被侵占。
⽽对于 PPT ⽂件,很多⼈则是通过选择加密的保护⽅式,以确保⾃⼰设计的PPT ⽂档不被盗⽤或篡改。
在众多的加密⽅法之中,「 *.ppsx 」格式加密⽅法,被众多⽹友认可并推崇。
只因为这种⽅法可以单独对「 *.ppsx 」⽂件设置修改权限密码,⽽不设置打开权限密码。
在打开「*.ppsx 」⽂件后会直接进⼊演⽰状态,并⽆任何的加密提⽰信息,避免因出现加密提⽰信息⽽带来不必要的尴尬,并且「 *.ppsx 」格式⽂件能完全保留 PPT 原有的设计演⽰效果,这堪称完美⼿段,从⽽被越来越多的⼈接受。
好了,下⾯马上进⼊今天的主题:PPT ⽂件的加密、解密与免密破解。
本⽂是关于 PPT ⽂件的加密、查看加密⽂件、解密与免密破解等内容的介绍,共分四个部分,内容较多,但⽅法很实⽤,希望看完对您有帮助。
第⼀部分如何对PPT ⽂件进⾏加密「 *.ppsx 」格式⽂件的加密⽅法步骤1:将⽂件格式另存为「 *.ppsx 」格式⽂件;步骤2:在'另存为'界⾯选择「⼯具 - 常规选项」;步骤3:只输⼊「修改权限密码」,但不能输⼊「打开权限密码」;步骤4:按“确定”即可对「 *.ppsx 」⽂件进⾏了加密。
具体操作步骤如下图所⽰。
这样,就完成了PPT的加密⼯作。
第⼆部分如何查阅 PPT ⽂件是否加密查阅加密「 *.ppsx 」格式⽂件的⽅法步骤1:先打开 PPT 软件,再打开「 *.ppsx 」格式⽂件;步骤2:如果⽂件加密,则会弹出「密码」的对话框。
步骤3:输⼊「密码」或点击「只读」,则可以打开该⽂件。
从上⾯的操作可以看到,打开这种加密 PPT ⽂件,只能在输⼊密码后⽅可编辑。
360手机安全卫士给手机相册加密
360手机平安卫士给手机相册加密什么是“手机防盗”?手机防盗功能通过:换卡短信、远程删除数据、追踪手机位置、遥控响警报音、远程锁定手机这五大功能帮助用户在手机丧失后线索,远程控制手机,以致于找回手机或将损失降至最低。
1. 换卡短信通知:当丧失手机的SIM卡被更换时,会自动向设置的“平安号码”发送通知短信,从而获取盗贼所使用的手机号码。
2. 删除数据:发送指定短信指令:shanchu#防盗密码到被盗手机,即可远程删除被盗手机上的通讯录、通话记录、短信、彩信、隐私短信数据。
3. 追踪手机位置:任意手机发送指定短信指令: weizhi#防盗密码到被盗手机,即可获取到手机当前的位置(此功能需开启挪动网络或GPS)。
4. 响警报音:任意手机发送指定短信指令:jingbao#防盗密码到被盗手机,被盗手机将以最大声音发出警报(即使在静音下)。
5. 锁定手机:任意手机发送指定短信指令:suoding#防盗密码到被盗手机,被盗手机将被锁屏,假设有人连续2次输入错误密码,将拍下其照片,并发送至平安号码(需要手机有前置摄像头、Android2.3及以上系统)如何使用“手机防盗”?1. 要实现“手机防盗”功能,必须先开启防盗保护第一步:设置防盗密码第二步:设置平安号码“平安号码“有以下用处:(1)当丧失手机的SIM卡被更换时,会自动向设置的“平安号码”发送通知短信,从而获取盗贼所使用的手机号码。
(2)假设不慎忘记防盗密码,可用任意手机发送: mima#平安号码到被盗手机,新密码将发送到平安号码(3)任意手机发送指定短信指令:suoding#防盗密码到被盗手机,被盗手机将被锁屏,假设有人连续2次输入错误密码,将拍下其照片,并发送至平安号码(需要手机有前置摄像头、Android2.3及以上系统)第三步:开启远程控制2. 开启防盗保护后,假设手机丧失,就可以用任意手机发送指定短信指令到被盗手机当前使用的号码,进展远程控制了。
图片加密方法
图片加密方法一、图片加密(图片发布者)1、选择软件图片保护狗是专门针对Bmp、Jpg等图片进行加密与保护的软件。
它集成了文件加密、防拷屏、防导出、访问口令、视图缩放限制、窗口时间限制、查看次数限制、图片有效期限制等多种保护措施,使图片查看者必须经过授权才能阅览。
图片发布者可以综合使用多种限制条件,让客户有条件的“试看”、“预览”图片。
文件加密防拷屏访问口令窗口时间限制查看次数限制时间有效期限制视图缩放限制水印图片预览特点:绿色——不存在后台启动的服务或者动态库,删除时在控制面板中卸载即可。
安全——采用多种加密手段,采用动态密码机制,全方位保护。
简单易用——傻瓜式操作更快捷更简单,如正常图片文件一样压缩,发送给客户,阅览图片与普通图片查看工具一样简单、直观。
2、保护措施●文件加密——采用加密格式储存,该格式采用多层加密手段,使得普通软件无法破译,常规的图软件无法显示。
●拷屏限制——在使用阅图器查看图片时,禁止了屏幕拷贝功能,使一般用户无法复制。
●查看密码保护——在打开加密图片时将弹出密码,这样可防止无授权者查看。
●窗口时间限制——可以设置查看时间,进行倒数计秒,超出窗口时间将自动关闭查看窗口。
●查看次数限制——超出规定的查看次数,图片无法查看。
●图片有效期保护——采用过期手段,过了有效期图片将无法查看,即使用户修改了系统时间,图片也一样无效。
●缩放保护——可以设置在特定比例时查看图片,如在50%以下查看,用户就只能看到缩小版的图片,而看不到原图。
●浮动文字——该文字永远浮在图片底部区域,用户复制时,将破坏图片完整性。
●导出密码设置——图片发布者可以设置是否允许将加密的图片导出为普通的、不受保护的Jpg、Bmp 图片。
如果允许导出,那么用户必须知道导出密码才可以进行图片导出操作。
3、使用示例●第一步,设置保护选项首次进入软件或者点击“设置选项”,即进入设置界面。
用户可以根据自己的需要选择保护项.。
默认选项:文件加密与拷屏限制是默认的选项。
png图片详解与加密解密方法
png图片详解与加密解密方法PNG文件格式分为PNG-24和PNG-8,其最大的区别是PNG-24是用24位来保存一个像素值,是真彩色,而PNG-8是用8位索引值来在调色盘中索引一个颜色,因为一个索引值的最大上限为2的8次方既128,故调色盘中颜色数最多为128种,所以该文件格式又被叫做PNG-8 128仿色。
PNG-24因为其图片容量过大,而且在Nokia和Moto等某些机型上创建图片失败和显示不正确等异常时有发生,有时还会严重拖慢显示速度,故并不常用,CoCoMo认为这些异常和平台底层的图像解压不无关系。
不过该格式最大的优点是可以保存Alpha通道,同事也曾有过利用该图片格式实现Alpha 混合的先例,想来随着技术的发展,手机硬件平台的提升,Alpha混合一定会被广泛的应用,到那时该格式的最大优势才会真正发挥。
PNG-8文件是目前广泛应用的PNG图像格式,其主要有六大块组成: 1.PNG文件标志,为固定的64个字节:0x89504e47 0x0d0a1a0a 2.文件头数据块IHDR(header chunk) 3.调色板数据块PLTE(palette chunk) 4.sBIT,tRNS块 等。
5.图像数据块IDAT(image data chunk) 6.图像结束数据IEND(image trailer chunk),固定的96个字节:0x00000000 0x49454e44 0xae426082 这六大块按顺序排列,也就是说IDAT块永远是在PLTE块之后,期间也会有许多其他的区块用来描述信息,例如图像的最后修改时间是多少,图像的创建者是谁等… 数据块1-4: 除了PNG文件标志,其中四大数据块和文件尾都是由统一的数据块文件结构描述的: Chunk Length: 4byte Chunk Type: 4byte Chunk Data: Chunk Length的长度 Chunk CRC: 4byte 例如IHDR块的数据长度为13,即 Chunk Length = 13 Chunk Type ="IHDR"IHDR块: 用来描述图像的基本信息,其格式为: 图像宽:4byte 图像高:4byte 图像色深:4byte 颜色类型:1byte 压缩方法:1byte 滤波方法:1byte 扫描方法:1bytePLTE块: 这个就是传说中放置调色盘数据的地方啦,其格式为: 循环 RED:1byte GREEN:1byte BLUE:1byte END 循环长度嘛,不就是Chunk Length / 3的长度嘛,而且Chunk Length一定为3的倍数。
毕业论文—基于Matlab的光学图像加密解密技术【范本模板】
本科毕业论文题目:基于Matlab的光学图像加密解密技术院(部):理学院专业:光信息科学与技术班级:光信122姓名:韩硕学号:20121212082指导教师:王惠临完成日期:2016年6月4日目录摘要 (IV)ABSTRACT (V)1前言 (1)1。
1 选题背景及意义 (1)1。
2 Matlab软件介绍 (1)1.3 Matlab的主要特点 (2)1。
4 本文结构安排 (3)2基于Matlab进行图形图像处理基础 (4)2.1 Matlab中图形图像的分类 (4)2.1。
1 索引图像 (4)2。
1.2 灰度图像 (4)2。
1。
3 RGB图像 (4)2.1。
4 二值图像 (4)2.2 Matlab常用的图形图像处理函数(命令) (4)3图形图像的加密解密技术 (6)3。
1 图形图像加密传输理论框图以及图形图像加密特点 (6)3.2 置乱加密技术 (7)3.2。
1 随机打乱各层的行或列 (7)3.2。
2 像素点随机打乱 (12)3.2。
3 像素点RGB值的放大 (14)3。
2.4 灰度变换置乱 (15)3.3 基于混沌的图像加密解密技术 (17)3.3。
1 混沌加密原理 (17)3.3.2 用Matlab的实现基于混沌的图像置乱加密算法 (18)3.4 基于秘密分割加密解密技术 (19)3.4。
1 秘密分割加密算法的原理 (19)3.4.2秘密分割加密算法的Matlab实现 (20)4结论 (24)4。
1 总结 (24)4.2 展望 (24)谢辞 (26)参考文献 (27)摘要社会在进步,时代在发展,计算机技术在飞速发展,互联网技术也在日益进步,各种迹象都表明着我们已经进入了一个信息大爆炸的时代。
人们每天通过互联网获取大量的数字图像的信息,然而在信息的传送中,未经加密的原始的数据非常容易遭受非法途径的截取并被恶意更改。
因此,互联网时代如何确保图像信息安全传送越来越受到人们的重视。
基于此,也提出了不少图形加密解密的算法.本文基于Matlab语言的编程环境,对图像的加密和解密的技术进行了相关验证性的研究。
加密相册的使用方法
加密相册的使用方法1.引言1.1 概述概述:加密相册是一种用于保护照片和视频文件的安全性的工具。
随着移动设备的普及,人们通常会将大量珍贵照片保存在手机或平板电脑中。
然而,当我们将这些私人照片存储在设备中时,存在被盗取、丢失或意外删除的风险。
为了保障个人照片的隐私和安全,加密相册应运而生。
加密相册可以将照片和视频文件进行加密存储,只有获得许可的用户才能够解密并访问其中的内容。
这为用户提供了一种有效的方式来保护他们的个人隐私。
无论是家庭照片、旅行回忆录还是其他珍贵的记忆,加密相册都能够确保这些文件不会落入他人之手。
与传统的文件夹加密方法相比,加密相册具有更多的优势。
首先,加密相册通常拥有直观友好的用户界面,使得用户可以轻松地管理自己的照片和视频文件。
其次,加密相册还可以提供各种高级安全功能,例如指纹识别、面部解锁或密码保护等,进一步增强了文件的安全性。
此外,加密相册往往还具备批量导入和导出功能,使得用户可以轻松地迁移或备份他们的照片。
在本文中,我们将重点介绍加密相册的使用方法。
首先,我们将详细解释加密相册的定义,包括其基本原理和功能特点。
接下来,我们将探讨加密相册相较传统文件夹加密的优势。
最后,我们将总结加密相册的使用方法,并对其未来的发展作出展望。
通过阅读本文,读者将对加密相册有一个全面的了解,并能够有针对性地选择并使用适合自己需求的加密相册工具。
同时,我们也希望能够促进加密相册技术的进一步发展,为用户提供更安全、便捷的保护个人隐私的解决方案。
文章结构部分的内容可以描述本文的章节组成和每个章节的主要内容。
下面是一个示例:1.2 文章结构本文将包含以下章节内容:2.1 加密相册的定义在这一部分,我们将介绍什么是加密相册,它是如何保护我们的个人照片和视频的。
我们会解释加密相册的基本原理以及它是如何通过加密技术来保护我们的隐私。
2.2 加密相册的优势这一部分我们将讨论加密相册相较于传统相册的优势。
我们将探讨加密相册提供的安全性和隐私保护功能,以及它如何帮助我们避免个人照片和视频外泄的风险。
(完整word版)MATLAB图片加密
算法1.把图像的数据重塑成一维的形式,对其进行置乱;clearcloseclcG=imread('F:\Fatiao.jpg');G=rgb2gray(G)subplot(1,3,1);imshow(G);title('原图');A=G(:);A1=G(end: -1:1);乱subplot(1,3,2);A1=reshape(A1,256,256)imshow(A1);title('一维置乱'); %title一下A2=A1(end:-1:1);A2G=reshape(A2,256,256);subplot(1,3,3) ;imshow(A2G)title('置乱恢复'); %title一下算法2.把图像看成二维的形式,采用二维坐标的形式对其进行置乱;clearcloseclcG=imread('F:\Fatiao.jpg');G=rgb2gray(G)subplot(1,3,1);imshow(G);title('原图') %title一下原图Gadd=fix(256*rand(256,256));for i=1:256for j=1:256G1(i,j)=0.1*G(i,j)+0.9*Gadd(i,j);endendsubplot(1,3,2);imshow(G1);title('置乱后的图像') ;for i=1:256for j=1:256G2(i,j)=(G1(i,j)-0.9*Gadd(i,j))./0.1;endendsubplot(1,3,3)imshow(G2); %显示图像title('恢复后的图像');算法3.利用arnold变换(猫脸变换)对图像进行置乱,并检验arnold的周期性(即变换周期为N时,采用arnold变换N次后,可以恢复原有图像)clearcloseclcG=imread('F:\Fatiao.jpg');subplot(2,2,1);imshow(G);title('原图');for k=1:12for x=1:256for y=1:256x1=x+y;y1=x+2*y;if x1>256x1=mod(x1,256);endif y1>256y1=mod(y1,256);endif x1==0;x1=256;endif y1==0;y1=256;endG_TR(x1,y1)=G(x,y);endendG=G_TRif k==1subplot(2,2,2);imshow(G_TR);title('一次迭代');endif k==2subplot(2,2,3);imshow(G_TR);title('二次迭代');endendsubplot(2,2,4);imshow(G_TR);title('192次迭代复原');。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
如何加密图片
每个人均会保存一些私人的图片(照片),如果不想这些图片让别人看到,最好的方法是将图片进行加密保存。
下而介绍几种简单实用的图片加密方法,即使你是电脑新手,也可立即学会。
1、修改文件扩展名法
例如,你有一张图片是“我的照片.jpg”,“jpg”即是扩展名,此外还有“bmp”、“gif”等,都是图片格式。
把“我的照片.jpg”修改为“我的照片.txt”,刚才“我的照片”就显示为文件文件了,不能打开,如需打开图片时,把“我的照片.txt”改回“我的照片.jpg”即可,如下图。
这种加密方法虽然简单,但容易被人识别。
如果看不到文件扩展名,可首先打开一个文件夹,点“工具→文件夹选项”,然后在弹出的对话框中,点“查看”,把“隐藏已知文件类型扩展名”前的打钩去掉即可。
2、压缩加密法
以WINRAR压缩软件为例,用右键点需要加密的图片,在右键菜单中,选“添加到压缩文件”,然后在弹出的对话框中,选“高级→设置密码”,输入密码后点“确定”压缩图片即可。
如果没有密码,即打不开这这张图片,但这种加密压缩后的图片需解压后才能查看,比较麻烦。