[Shell] AES-256でファイルを暗号化する

AES-256 でファイルを暗号化します。

#!/bin/bash

# 暗号化するファイル
DATA_FILE="data.zip"

# 暗号化後のファイル名
ENC_FILE="data.enc"

# 暗号Key
KEY_FILE="key.bin"

# IV (128bit)
IV="1234567890abcdef"

# AES-256で暗号化
openssl enc -aes-256-cbc -in "$DATA_FILE" -out "$ENC_FILE" -pass file:"$KEY_FILE" -iv "$IV"

# 結果
if [ $? -eq 0 ]; then
  echo "ファイルが正常に暗号化されました: $ENC_FILE"
else
  echo "ファイルの暗号化に失敗しました"
fi

暗号化で利用するKey(上記のkey.bin)の作成例はこちら
[Shell] ランダムなバイトを作成する
https://blog.apiless.com/2023/10/21/create-randam-bytes/

復号化

#!/bin/bash

# 暗号化されたファイル
ENC_FILE="data.enc"

# 復号化後のファイル名
DEC_FILE="data_decrypted.zip"

# 暗号Key
KEY_FILE="key.bin"

# IV (128bit)
IV="1234567890abcdef"

# AES-256で復号化
openssl enc -d -aes-256-cbc -in "$ENC_FILE" -out "$DEC_FILE" -pass file:"$KEY_FILE" -iv "$IV"

# 結果
if [ $? -eq 0 ]; then
  echo "ファイルが正常に復号化されました: $DEC_FILE"
else
  echo "ファイルの復号化に失敗しました"
fi

IV(初期化ベクトル)はランダムに作成することが推奨となります。

ShellShell

Posted by kidatti