再玩个BT一点的,按位异或及取反2合一DIY加密版^_^
功能与前2个加密脚本相同,但加密算法2合一,也能DIY密文
[code]#!/bin/ksh
#乐山市沙湾区邮政局 宋 涛
#结合按位异或及取反加密数字的shell V050925
trap "tput sgr0 echo " 0 1 2 3 9 15
tput bold
clear
passstr1='8' #增加的密文第一位,可设为1位除0以外的整数,即 1-9
passstr2='abcdefghij' #最终的密文代码,可设为任意不重复的10位英文字符,即a-z或A-Z
echo "\n 按位异或及取反加密数字的shell \n"
while :
do
echo -n "\n\n\n 请输入原密码: "
read passwd
test $passwd || { echo exit 0 }
[[ $passwd == *([0-9]) && ${#passwd} -eq 6 ]] || { echo "\n\n 请输入6位数字 \n" read clear continue }
passwd=$(echo $passwd | sed 's/\(.\)\(.\)/\2\1/g')
passwd=$(echo ${passstr1}$passwd)
passwd=$(echo $((~passwd))|cut -c2-)
passwd=$((passwd^111111))
passwd=$(echo $passwd|sed 'y/1234567890/'"$passstr2"'/')
echo "\n 加密密码为: "$passwd
unpasswd=$(echo $passwd|sed 'y/'"$passstr2"'/1234567890/')
unpasswd=$((unpasswd^111111))
unpasswd=$((~-unpasswd))
unpasswd=$(echo $unpasswd | cut -c2-| sed 's/\(.\)\(.\)/\2\1/g')
echo "\n 源密码为: "$unpasswd
done[/code]
|
|
|