文件编译
//编译 c文件
gcc demo.c // 会生成一个 a.out 文件
./a.out // 就能显示 执行的结果
/// 把 c 文件 编译成 cpp文件
clang -rewrite-objc block.c -o block.cpp
加密解密
1. 对称加密
- DES
/// DES(ECB)加密
$ echo -n hello | openssl enc -des-ecb -K 616263 -nosalt | base64
/// DES(ECB)解密
$ echo -n HQr0Oij2kbo= | base64 -D | openssl enc -des-ecb -K 616263 -nosalt -d
/// DES(CBC)加密
$ echo -n hello | openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt | base64
/// DES(CBC)解密
$ echo -n alvrvb3Gz88= | base64 -D | openssl enc -des-cbc -iv 0102030405060708 -K 616263 -nosalt -d
- AES
// AES(ECB)加密
$ echo -n hello | openssl enc -aes-128-ecb -K 616263 -nosalt | base64
/// AES(ECB)解密
$ echo -n d1QG4T2tivoi0Kiu3NEmZQ== | base64 -D | openssl enc -aes-128-ecb -K 616263 -nosalt -d
/// AES(CBC)加密:( 61 62 63 对应ASCILL码 abc)
$ echo -n hello | openssl enc -aes-128-cbc -iv 0102030405060708 -K 616263 -nosalt | base64
/// AES(CBC)解密:( 61 62 63 对应ASCILL码 abc)
$ echo -n d1QG4T2tivoi0Kiu3NEmZQ== | base64 -D | openssl enc -aes-128-ecb -K 616263 -nosalt -d
- Base64
/// 对字符串的 编码和解码
$ echo hello | openssl base64
$ echo aGVsbG8K | openssl base64 -d
/// 对文件内容 进行 编码和解码
$ openssl enc –base64 –in name.txt –out encode.txt
$ openssl enc –base64 –d –in out.txt –out decode.txt
/// 对文件的 编码和解码
$ openssl base64 -in t.txt
$ echo aGVsbG8gc3dpZnQK | openssl base64 -d -out des.txt
2. 非对称加密
- RSA
RSA加密:公钥加密,私钥解密。
RSA签名:私钥加密(签名),公钥解密(验证)。
/// 生成一个 私钥
$ openssl genrsa -out test_pri.key 1024
/// 根据私钥生成一个 公钥
$ openssl rsa -in test_pri.key -pubout -out test_pub.key
/// 使用 公钥进行加密
$ openssl rsautl -encrypt -pubin -inkey test_pub.key -in base64.txt -out en.txt
/// 使用 私钥进行解密
$ openssl rsautl -decrypt -inkey test_pri.key -in en.txt -out de.txt
/// 使用私钥进行签名
$ openssl rsautl -sign -in base64.txt -inkey test_pri.key -out enc.txt
/// 使用公钥进行验证
$ openssl rsautl -verify -in enc.txt -pubin -inkey test_pub.key -out dec.txt
3. HASH(散列)
- MD5
$ md5 -s "hello"
- SHA (待补充)
网友评论