加密与解密 - encrypt & decrypt
加密和解密。可以使用 libcrypt
库。
crypt
crypt()
is the password encryption function.- Link with
-lcrypt
char *crypt(const char *key, const char *salt);
encrypt
- encrypt and decrypt 64-bit messages.
void setkey(const char *key);
void encrypt(char block[64], int edflag);
#define decrypt(block) encrypt(block, 1)
Thread Safe crypt_r
and encrypt_r
char *crypt_r(const char *key, const char *salt,
struct crypt_data *data);
void setkey_r(const char *key, struct crypt_data *data);
void encrypt_r(char *block, int edflag, struct crypt_data *data);
struct crypt_data {
char keysched[16 * 8];
char sb0[32768];
char sb1[32768];
char sb2[32768];
char sb3[32768];
char crypt_3_buf[14];
char current_salt[2];
long int current_saltbits;
int direction;
int initialized;
};
libcrypt.a
nm
- list symbols from object files
nm -C /usr/lib/libcrypt.a | grep ' [TW] '
000003b0 T crypt
00000000 T __crypt_r
00000000 W crypt_r
000003b0 W fcrypt
000008b0 T __md5_crypt
00000000 T __md5_crypt_r
00001080 T __sha256_crypt
00000000 T __sha256_crypt_r
000017f0 T __sha512_crypt
00000000 T __sha512_crypt_r
00000000 T _ufc_doit_r
00000e80 T encrypt
00000c50 T __encrypt_r
00000c50 W encrypt_r
00000490 T __init_des
00000000 T __init_des_r
00000f20 T setkey
00000eb0 T __setkey_r
00000eb0 W setkey_r
000008c0 T _ufc_dofinalperm_r
00000730 T _ufc_mk_keytab_r
00000a90 T _ufc_output_conversion_r
000004b0 T _ufc_setup_salt_r