Hari baik untuk semuaKebetulan secara historis bahwa kunci elektronik dari organisasi holding kecil kami untuk program manajemen dokumen elektronik SBIS diimpor ke dalam jendela registri setiap workstation, setiap pengguna.Saat membuat tempat kerja baru, semak dengan kunci diturunkan dari cabang Crypto-Pro dan diimpor ke pengguna baru.Di server terminal, saya menyadari bahwa ini tidak dapat diterima dan memutuskan untuk mengunggah semua kunci ke USB flash drive dan mengizinkan drive eksternal di Crypto-Pro.Sekarang saat membuat pengguna baru di server terminal, tidak diperlukan gerakan dengan kunci elektronik.Masalahnya adalah Anda perlu mengonversi kunci ASCII dari registri ke 16 file biner.Mungkin saya tidak tahu cara "google", tetapi saya tidak menemukan solusi yang sudah jadi tentang topik tersebut, jadi saya membuat skrip sendiri di bash.Mungkin seseorang akan berguna.Deskripsi kecil.Kunci ada di cabang registri - [HKEY_LOCAL_MACHINE \ SOFTWARE \ Wow6432Node \ Crypto Pro \ Settings \ Users \ SID-user \ Keys \ Nama-kunci ] Struktur kunci di cabang registri yang tidakdimuat : "name.key" = hex: 10, d5 ..." header.key "= hex: 20,42,19, ..." primary.key "= hex:30,12" masks.key "= hex: 30,23" primary2.key "= hex: 30,12 ..." masks2 .key ”= hex: 30,56,10 ...Sebagai parameter, skrip harus menentukan file dengan kunci yang diunduh dari registri (misalnya, keys.reg).Sebagai hasil dari skrip, folder kunci akan dibuat di direktori root tempat skrip diluncurkan dan di dalamnya folder dengan nama kunci. Folder dengan nama tombol masing-masing akan berisi 6 file - name.key, header.key, primary.key, primary2.key, masks.key, masks2.key.#!/bin/bash
path=./
temp=$path/temp
file[1]="name.key"
file[2]="masks.key"
file[3]="masks2.key"
file[4]="primary.key"
file[5]="primary2.key"
file[6]="header.key"
if [ ! -d "$temp" ]; then
mkdir "$temp"
fi
if [ ! -d "$path/keys" ]; then
mkdir "$path/keys"
fi
dos2unix -n -q $1 $temp/$1
cat $temp/$1 | grep -E -o 'Keys\\\w+]' | sed -E 's/Keys\\//; s/]//' > $temp/keysname
while read key
do
cat $temp/$1 | sed -e '/./{H;$!d;}' -e "x;/$key]/!d" | sed -n "/$key]/!p" > $temp/$key
if ! [ -d "$path/keys/$key" ]; then
mkdir "$path/keys/$key"
fi
for i in {1..6};
do
hex=$(cat $temp/$key | tr -d '\n' | sed -E 's/\\//g; s/ //g; s/\$//g' | grep -E -o "${file[$i]}\"=hex:(\w{2},?)+?" | sed -E "s/${file[$i]}\"=hex://; s/,//g" | sed -E 's/\w{2}/\\x&/g')
echo -e -n "$hex" > "$path/keys/$key/${file[$i]}"
done
done < $temp/keysname
if [ -d "$temp" ]; then
rm -rf "$temp"
fi
exit 0