因不会在http://17dvd.cn/unixcd12/article_view.asp?id=1302
里追贴,只得在这里再开灌了^_^
闲来无事,只能翻翻老底,再改进改进。。。。这次精简了代码,增加了可DIY密文,这样可以得到与众不同的密码 ^_^
[code]#!/bin/ksh
#乐山市沙湾区邮政局 宋 涛
#按位异或加密数字的shell V050820
#增加输入必须为6位数字的判断
#增加先两两交叉取反
#增加数字<->字母替换 V050829
#再次精简代码及增加可DIY的密文,即能或得与众不同的密码 ^_^ 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 num
test $num || { echo exit 0 }
[[ $num == *([0-9]) && ${#num} -eq 6 ]] || { echo "\n\n 请输入6位数字 \n" read clear continue }
passwd=$(echo $((${passstr1}$num^111111)) | sed 's/\(.\)\(.\)/\2\1/g')
passwd=$(echo $passwd|sed 'y/1234567890/'"$passstr2"'/')
echo "\n 加密密码为: "$passwd
unpasswd=$(echo $(echo $passwd|sed 'y/'"$passstr2"'/1234567890/') | sed 's/\(.\)\(.\)/\2\1/g')
unpasswd=$(echo $((unpasswd^111111)) | cut -c2- )
echo "\n 源密码为: "$unpasswd
done[/code]
[code]#!/bin/ksh
#乐山市沙湾区邮政局 宋 涛
#按位取反加密数字的shell V050820
#增加输入必须为6位数字的判断
#增加先两两交叉取反
#增加数字<->字母替换 V050829
#再次精简代码及增加可DIY的密文,即能或得与众不同的密码 ^_^ 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 num
test $num || { echo exit 0 }
[[ $num == *([0-9]) && ${#num} -eq 6 ]] || { echo "\n\n 请输入6位数字 \n" read clear continue }
passwd=$(echo $num | sed 's/\(.\)\(.\)/\2\1/g')
passwd=$(echo $((~${passstr1}$passwd)) | sed 'y/1234567890/'"$passstr2"'/')
echo "\n 加密密码为: "$passwd
unpasswd=$(echo $passwd|sed 'y/'"$passstr2"'/1234567890/')
unpasswd=$(echo $((~unpasswd)) | cut -c2- | sed 's/\(.\)\(.\)/\2\1/g')
echo "\n 源密码为: "$unpasswd
done[/code]
|
|
|