資源簡介
安裝PHP所需要的功能包,libmcrypt-2.5.8.tar.gz(
# ./configure && make && make install
# cd libltdl/
# ./configure --enable-ltdl-install && make && make install
)
代碼片段和文件信息
/*?First?example:?Encrypts?stdin?to?stdout?using?TWOFISH?with?128?bit?key?and?CFB?*/
#include?
#include?
#include?
/*?#include??*/
main()?{
??MCRYPT?td;
??int?i;
??char?*key;
??char?password[20];
??char?block_buffer;
??char?*IV;
??int?keysize=19;?/*?128?bits?*/
??key=calloc(1?keysize);
??strcpy(password?“A_large_key“);
/*?Generate?the?key?using?the?password?*/
/*??mhash_keygen(?KEYGEN_MCRYPT?MHASH_MD5?key?keysize?NULL?0?password?strlen(password));
?*/
??memmove(?key?password?strlen(password));
??td?=?mcrypt_module_open(“twofish“?NULL?“cfb“?NULL);
??if?(td==MCRYPT_FAILED)?{
?????return?1;
??}
??IV?=?malloc(mcrypt_enc_get_iv_size(td));
/*?Put?random?data?in?IV.?Note?these?are?not?real?random?data?
?*?consider?using?/dev/random?or?/dev/urandom.
?*/
??/*??srand(time(0));?*/
??for?(i=0;?i????IV[i]=rand();
??}
??i=mcrypt_generic_init(?td?key?keysize?IV);
??if?(i<0)?{
?????mcrypt_perror(i);
?????return?1;
??}
??/*?Encryption?in?CFB?is?performed?in?bytes?*/
??while?(?fread?(&block_buffer?1?1?stdin)?==?1?)?{
??????mcrypt_generic?(td?&block_buffer?1);
/*?Comment?above?and?uncomment?this?to?decrypt?*/
/*????mdecrypt_generic?(td?&block_buffer?1);??*/
??????fwrite?(?&block_buffer?1?1?stdout);
??}
??mcrypt_generic_deinit(td);
??mcrypt_module_close(td);
??return?0;
}
#if?0
/*?Second?Example:?encrypts?using?CBC?and?SAFER+?with?192?bits?key?*/
#include?
#include?
#include?
main()?{
??MCRYPT?td;
??int?i;
??char?*key;?/*?created?using?mcrypt_gen_key?*/
??char?*block_buffer;
??char?*IV;
??int?blocksize;
??int?keysize?=?24;?/*?192?bits?==?24?bytes?*/
??key?=?calloc(1?keysize);
??strcpy(key?“A_large_and_random_key“);?
??td?=?mcrypt_module_open(“saferplus“?NULL?“cbc“?NULL);
??blocksize?=?mcrypt_enc_get_block_size(td);
??block_buffer?=?malloc(blocksize);
/*?but?unfortunately?this?does?not?fill?all?the?key?so?the?rest?bytes?are
?*?padded?with?zeros.?Try?to?use?large?keys?or?convert?them?with?mcrypt_gen_key().
?*/
??IV=malloc(mcrypt_enc_get_iv_size(td));
/*?Put?random?data?in?IV.?Note?these?are?not?real?random?data?
?*?consider?using?/dev/random?or?/dev/urandom.
?*/
/*?srand(time(0));?*/
??for?(i=0;?i?????IV[i]=rand();
??}
??mcrypt_generic_init?(?td?key?keysize?IV);
??/*?Encryption?in?CBC?is?performed?in?blocks?*/
??while?(?fread?(block_buffer?1?blocksize?stdin)?==?blocksize?)?{
??????mcrypt_generic?(td?block_buffer?blocksize);
/*??????mdecrypt_generic?(td?block_buffer?blocksize);?*/
??????fwrite?(?block_buffer?1?blocksize?stdout);
??}
??mcrypt_generic_end?(td);
??return?0;
}
#endif
- 上一篇:php+ajax高校社團管理系統.rar
- 下一篇:大量網站字典合集最新字典
評論
共有 條評論