用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
来源:互联网 发布:unix 时间 java 编辑:程序博客网 时间:2024/05/16 11:30
本来是一道C语言的题目,用C语言实现太简单,所以给自己找点有挑战性的玩法:用bash shell编写
加密程序:由键盘输入明文,通过加密程序转换成密文并输出到屏幕上。 算法:明文中的字母转换成其后的第4个字母,例如,A变成E(a变成e),Z变成D,非字母字符不变;同时将密文每两个字符之间插入一个空格。例如,China转换成密文为G l m r e。要求:在函数change中完成字母转换,在函数insert中完成增加空格,用指针传递参数。
- #!/bin/bash
- read -p "please input password:" password
- for ((i=0;i<${#password};i++))
- do
- var2=`printf "%d" "'${password:$i:1}"`
- if (([ $var2 -gt 96 ] && [ $var2 -lt123 ])||([ $var2 -gt 65 ] && [ $var2 -lt91 ]))
- then
- if (([ $var2 -gt 65 ] && [ $var2 -lt87 ])||([ $var2 -gt 96 ] && [ $var2 -lt119 ]))
- then
- let var2=$var2+4
- printf \\x`printf %x $var2`
- #echo -n " "
- fi
- if (([ $var2 -gt 86 ] && [ $var2 -lt91 ])||([ $var2 -gt 118 ] && [ $var2 -lt123 ]))
- then
- let var2=$var2-22
- printf \\x`printf %x $var2`
- #echo -n " "
- fi
- echo -n " "
- else
- printf \\x`printf %x $var2`
- echo -n " "
- fi
- done
- echo
#!/bin/bashread -p "please input password:" passwordfor ((i=0;i<${#password};i++))do var2=`printf "%d" "'${password:$i:1}"` if (([ $var2 -gt 96 ] && [ $var2 -lt 123 ])||([ $var2 -gt 65 ] && [ $var2 -lt 91 ])) then if (([ $var2 -gt 65 ] && [ $var2 -lt 87 ])||([ $var2 -gt 96 ] && [ $var2 -lt 119 ])) then let var2=$var2+4 printf \\x`printf %x $var2` #echo -n " " fi if (([ $var2 -gt 86 ] && [ $var2 -lt 91 ])||([ $var2 -gt 118 ] && [ $var2 -lt 123 ])) then let var2=$var2-22 printf \\x`printf %x $var2` #echo -n " " fi echo -n " " else printf \\x`printf %x $var2` echo -n " " fidoneecho
其中:
printf \\x`printf %x $var2` 负责将ascii码转成字符
${#password} 可以计算变量长度
${password:$i:1} 可变量中单个字符,$i存放第几个字符,1表示输出一个字符,如改成2则可一次输出两个字符
var2=`printf "%d" "'${password:$i:1}"` 很实用的语句,可以让命令执行结果输出写入到变量,· ... ·的用法,注意是ESC下面的那个
- 用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
- 用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
- 字符与ascii码的相互转换以及字符串和字符数组的相互转换
- ascii码与字符的相互转换
- ASCII值与字符相互转换程序
- shell中字符到ascii码或数字的转换
- shell 为变量赋值 命令的输出结果赋值
- ASCII码的应用(.编写一个程序从标准输入读取字符,并把他们写到标准输出。除了大写字母转换成小写字母之外,其他的原样输出。)
- Linux Shell输出命令结果到脚本变量中
- ASCII与中文的相互转换
- 字符ascii码与字符的转换
- ASCII码与字符相互转换
- Swift字符与ASCII数值相互转换
- 编写程序输出ASCII文件的字符数、单词数和行数
- 用Python把图片转换为ASCII字符的程序
- shell获取命令的输出结果
- shell命令输出到变量
- UNICODE与ASCII字符的转换
- 基本TCP套接口编程
- Can I call a virtual function from a constructor?
- java_Web09-软件密码学基础和配置tomcat的https连接器和tomcat服务器的管理平台
- Hello, world!
- 进制转换 hdu2031 递归
- 用shell编写的简单密码加密程序,涉及到ASCII与字符的相互转换,以及命令结果输出到变量
- DB2游标原理
- 关于Cookie和Session
- 添加了新的类以后 重新打开工程 类视图不显示新的类 为什么? 在线等 求大神指教
- 学生管理系统(附设计要求)
- 代码的第一印象(续):推荐几本经典书籍
- seandroid 策略2
- c# 控制台的文本读写
- How To Write a Computer Emulator