From 1b028a3e1bc85ab6633d26421a042f06a6fadf16 Mon Sep 17 00:00:00 2001 From: chickliu Date: Fri, 8 Nov 2024 19:56:07 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=20docker-compose/decrypt.sh?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docker-compose/decrypt.sh | 61 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 docker-compose/decrypt.sh diff --git a/docker-compose/decrypt.sh b/docker-compose/decrypt.sh new file mode 100644 index 0000000..b2574e8 --- /dev/null +++ b/docker-compose/decrypt.sh @@ -0,0 +1,61 @@ +#!/bin/bash + +EXCLUDE_DIRS=("node_modules" ".idea" ".vagrant") +EXCLUDE_FILES=("Vagrantfile" "Dockerfile" ".gitignore" "decrypt.sh" "encrypt.sh") + +should_exclude() { + local item="$1" + local basename=$(basename "$item") + + for dir in "${EXCLUDE_DIRS[@]}"; do + if [[ "$basename" == "$dir" ]]; then + return 0 + fi + done + + for file in "${EXCLUDE_FILES[@]}"; do + if [[ "$basename" == "$file" ]]; then + return 0 + fi + done + + return 1 +} + +decrypt_file() { + local file="$1" + local first_char="${file:0:1}" + local ascii=$(printf "%d" "'$first_char") + + echo "解密文件: $file" + temp_file="${file}.tmp" + + xxd -p "$file" | tr -d '\n' | sed 's/\(..\)/\1 /g' | while read -n 3 hex; do + if [ ! -z "$hex" ]; then + printf "%02x" "$((0x$hex ^ ascii))" + fi + done | xxd -r -p > "$temp_file" + + mv "$temp_file" "$file" +} + +process_directory() { + local dir="$1" + + for item in "$dir"/*; do + if should_exclude "$item"; then + echo "跳过: $item" + continue + fi + + if [[ -d "$item" ]]; then + process_directory "$item" + elif [[ -f "$item" ]]; then + decrypt_file "$item" + fi + done +} + +echo "开始解密..." +process_directory "." +echo "解密完成" \ No newline at end of file