linux 環境(基礎)
安裝 openssl(加密用)
安裝 python 環境**換金鑰用)
#!/bin/sh
py_file=__zone_aes_tool__.py
key=
iv=in_file=
out_file=
# 獲取金鑰k,向量v,輸入檔案i,輸出檔案o
while
getopts
":k:v:i:o:" opt
docase
$opt
in k)
key=
$optarg
echo
"引數 k - key 的值: $optarg";;
v)iv=
$optarg
echo
"引數 v - iv 的值: $optarg";;
i)in_file=
$optarg
echo
"引數 i - in 的值: $optarg";;
o)out_file=
$optarg
echo
"引數 o - out 的值: $optarg";;
?)echo
"未知引數"
exit 1;
; esac
done
echo
""echo
"in_file = $"
echo
"out_file = $"
echo
"key = $"
echo
"iv = $"
# 建立 python 檔案,把字串轉換為 hex 值
echo
"import sys
import os
in_msg = sys.ar**[1]
in_msg_len = len(in_msg)
# print '[ %s ] %s' % (in_msg_len, in_msg)
out_hex_list = [hex(ord(x)) for x in in_msg]
# popen remove hex_list
cmd_list = os.popen('echo \"%s\" | sed \"s/0x//g\" | sed \"s/[, \']//g\" | sed \"s/\[//g\" | sed \"s/\]//g\"' % (out_hex_list)).readlines()
# print 'cmd_list = %s' % (cmd_list)
# get first line
cmd_line = cmd_list[0]
# print 'cmd_line = %s' % (cmd_line)
# remove '\ n'
out_hex = cmd_line[0:len(cmd_line)-1]
# print 'out hex : %s' % out_hex
print out_hex
">
$# 字串轉為 hex
key_hex=
`python $ $
`iv_hex=
`python $ $
`echo
"key_hex = $"
echo
"iv_hex = $"
# 刪除 python 檔案rm$
## 加密
echo
"\n\topenssl enc -aes-128-cbc -k $ -iv $ -in $ -out $\n\n"
`openssl enc -aes-128-cbc -k $ -iv $ -in $ -out $
`
執行命令如下:
./zone_aes_tool.sh -k 0123456789abcdef -v 0123456789abcdef \
-i mxnet_liveness_141_model_symbol.json \
-o encrypt_mxnet_liveness_141_model_symbol
其中:
-k:輸入 16 個 ascii 字元作為金鑰
-v:輸入 16 個 ascii 字元作為向量(aes,cbc,pkcs5padding 需要)
-i:輸入需要加密的檔名
-o:輸出加密後的生成的檔名
openSSL實現AES加密
openssl是很常見的c介面的庫,個人覺得易用。以下是aescbc cfb ecb加密方式的用法都是類似的,只是函式名有點區別,就不一一枚舉了。一 介面簡介 設定加密金鑰,使用字元緩衝區 intaes set encrypt key const unsigned char userkey,cons...
PHP使用OpenSSL實現AES加密的筆記
記錄這兩天遇到的一些問題,一開始主要是對一些概念理解的不清楚 比如aes是一種演算法,而openssl是乙個擴充套件庫,其中包含對aes演算法的實現 當然在完全理解演算法後可以自己實現,但可能會遇到很多問題,我會在以後進行嘗試 目前在專案的使用中,還是使用擴充套件庫的方法最快最簡單 1,加密方法 通...
AES實現大檔案分塊加秘和解秘
搞了三天嘗試了n多方法之後終於搞定,如下 using system using system.text using system.collections using system.componentmodel using system.data using system.net using syst...