博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
几种字符串加密解密的方法
阅读量:6418 次
发布时间:2019-06-23

本文共 2822 字,大约阅读时间需要 9 分钟。

第一种:〔 Python 与 Bash Shell 的结合 〕

这个命令会让你输入一个字符串,然后会再输出一串加密了的数字。
加密代码[照直输入]:
python -c 'print reduce(lambda a,b: a*256+ord(b), raw_input("string: "), 0)'
解密代码[数字后+P]:
dc -e 输出的数字P
第二种:〔 应该是纯 Bash Shell,含 VIM 的 xxd 〕
用 gtalk@gmail.com 作为明文,加密分两步,当然了,也是可以一步过的,呆会说~
加密代码:
1、echo "gtalk@gmail.com" |xxd -ps -u
得到:6774616C6B40676D61696C2E636F6D0A
2、echo "ibase=16; 6774616C6B40676D61696C2E636F6D0A" |bc
得到:137514765985002236391382606438443478282
一步加密代码:
echo "ibase=16; $(echo "gtalk@gmail.com" |xxd -ps -u)" |bc
得到:137514765985002236391382606438443478282
解密代码:
3、dc -e 137514765985002236391382606438443478282P
得到:gtalk@gmail.com
第三种:〔 Base64 编码,这个很好很强大,适合写加密脚本 〕
同样用 gtalk@gmail.com 作为明文,来看代码:
加密代码:
echo "gtalk@gmail.com" |base64 -i
得到:Z3RhbGtAZ21haWwuY29tCg==
解密代码:
echo "Z3RhbGtAZ21haWwuY29tCg==" |base64 -d
得到:gtalk@gmail.com

 

 

用shell脚本对系统进行自动化维护,简单,便捷而且可移植性好.

但shell脚本是可读写的,很有可能会泄露敏感信息,如用户名,密码,路径,IP等.
同样,在shell脚本运行时会也泄露敏感信息.
请问如何不影响脚本运行的前提下,对脚本进行加密?

 

一、shc方法

 

shc是一个加密shell脚本的工具.它的作用是把shell脚本转换为一个可执行的二进制文件,这就很好的解决了上述问题.

 

yum安装:

 

yum -y install shc

 

编译安装:

 

wget http://www.datsi.fi.upm.es/~frosal/sources/shc-3.8.7.tgztar xvfz shc-3.8.7.tgzcd shc-3.8.7make

 

验证shc是否正确安装

 

[root@martin shc-3.8.7]# ./shc -vshc parse(-f): No source file specifiedshc Usage: shc [-e date] [-m addr] [-i iopt] [-x cmnd] [-l lopt] [-rvDTCAh] -f script

创建一个示例Shell脚本

[root@martin shc-3.8.7]# vi random.sh#!/bin/bashread -p "How many random numbers do you want to generate?" maxfor (( start = 1; start <= $max; start++ ))do  echo -e $RANDOMdone

给脚本增加可执行权限

[root@martin shc-3.8.7]# chmod u+x random.sh

执行示例脚本

[root@martin shc-3.8.7]# ./random.shHow many random numbers do you want to generate?31423595557671

使用shc加密Shell脚本

[root@martin shc-3.8.7]# ./shc -v -r -T -f random.shshc shll=bashshc [-i]=-cshc [-x]=exec '%s' "$@"shc [-l]=shc opts=shc: cc  random.sh.x.c -o random.sh.xshc: strip random.sh.xshc: chmod go-r random.sh.x

运行后会生成两个文件,script-name.x 和 script-name.x.c

script-name.x是加密后的可执行的二进制文件
script-name.x.c是生成script-name.x的原文件(c语言)

[root@martin shc-3.8.7]# ll random.sh*-rwxr-xr-x 1 root root   146 Aug  2 10:26 random.sh-rwx--x--x 1 root root  9424 Aug  2 10:30 random.sh.x-rw-r--r-- 1 root root 10080 Aug  2 10:30 random.sh.x.c

执行加密后的脚本

[root@martin shc-3.8.7]# ./random.sh.x How many random numbers do you want to generate?3289552148729513

还不完善,只能全路径执行shc命令或者进入目录内,加入全局环境变量/etc/profile未生效

二、gzexe

它是使用系统自带的gzexe程序,它不但加密,同时压缩文件

这种加密方式不是非常保险的方法,但是能够满足一般的加密用途,可以隐蔽脚本中的密码等信息。

使用方法:

[root@martin home]# gzexe random.sh random.sh:     20.5%
[root@martin home]# ll random.sh*-rwxr-xr-x 1 root root 953 Aug  2 10:45 random.sh-rwxr-xr-x 1 root root 146 Aug  2 10:45 random.sh~

它会把原来没有加密的文件备份为 file.sh~ ,同时 file.sh 即被变成加密文件

参考地址:

http://lidao.blog.51cto.com/3388056/1914205

https://yq.aliyun.com/ziliao/65848

 

转载于:https://www.cnblogs.com/klb561/p/9226916.html

你可能感兴趣的文章
让script的type属性等于text/html
查看>>
[Docker] Docker Machine intro
查看>>
5.怎么以域名的形式来浏览网站(内网 + 外网)?
查看>>
HA 高可用软件系统保养指南
查看>>
Hadoop 2.x HDFS新特性
查看>>
Linux下的Mongodb部署应用梳理
查看>>
RAID,mdadm(笔记)
查看>>
linux 文件系统sysvinit 流程分析
查看>>
ios使用xcode进行Archive打包上传出现的常见错误
查看>>
总结libevent安装方法
查看>>
js delete可以删除对象属性及变量
查看>>
若工作只能提供薪水,而让对你的未来无所助益
查看>>
C#语法文本字面量
查看>>
用Go自己实现配置文件热加载功能
查看>>
PermissionDialog【权限申请提示对话框】
查看>>
【单页应用】我们该如何处理框架弹出层层级关系?
查看>>
Leetcode: Clone Graph
查看>>
基础知识《三》java修饰符
查看>>
net.sf.json在处理json对象转换为普通java实体对象时的问题和解决方案
查看>>
线性回归与梯度下降
查看>>