算法解密84位加密,进制转换解密脚本

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 十六进制转十进制转二进制,根据规则进行转换后拼接
#!/bin/bash
# 算法解密84位加密,进制转换解密脚本
# 脚本开发:万杨
# 由于企业保密要求,本次算法过程已经经过更改处理
bcrpm=`rpm -qa | grep "^bc" | wc -l`
                                          # 定义bcrpm变量:查看已安装包,过滤开头为 bc 并且 wc -l 进行计数
if [ $bcrpm -lt 1 ]              # lt 小于:参考:shell if 条件判断文件或目录;字符串长度或为空,逻辑运算: eisc.cn/index.php?c=read&id=409&page=1
then
yum install -y bc                # 安装进制转换工具
else
echo "bc 工具已经安装"
fi
clear
read -p "请输入需要解密的20进制msgid字符:" a
echo "截取前20位字符:"
a=`echo $a | cut -c1-10` ; echo $a
                                # cut -c1-20 字符串1到20位数
echo "转换为 10进制字符串:"
((a=20#$a)) ; echo $a
                                # 将20进制转换为10进制
er=`echo "obase=2;$a" | bc`
                               # 定义变量 er为:打印10进制变量,并且转换为 二进制
cz=`echo $[86-${#er}]`
                              # 定义cz变量:echo $[]  进行计算,两个数相减法运算
echo "$er  共 ${#er} 位数二进制 , 需要补0个数:$cz 正在进行msgid解密,请稍等!"
echo "正在参与解密计算请稍后!"
                            # 打印变量字符串长度:echo ${# }
    c1=1
    c2=`echo $[9-$cz]`  ; echo "第二个数:开始从 $c2 打印后面 9 个数字"
    c3=`echo $[$c2+9]` ;  echo "第3个数:开始从 $c3 打印后面 9 个数字"
    c4=`echo $[$c3+9]` ;  echo "第4个数:开始从 $c4 打印后面9个数字"
    c5=`echo $[$c4+9]` ;  echo "第5个数:开始从 $c5 打印后面9个数字"
    c6=`echo $[$c5+9]` ;  echo "第6个数:开始从 $c6 打印后面9个数字"
    c7=`echo $[$c6+9]` ;  echo "第7个数:开始从 $c7 打印后面9个数字"
# 定义变量c 为echo 计算的值
    str1=`echo $er | awk '{c1='"c1"'; print substr($0,1,9)}'`  ; echo $str1
    str2=`echo $er | awk '{c2='"c2"'; print substr($0,10,9)}'`  ; echo $str2
    str3=`echo $er | awk '{c3='"c3"'; print substr($0,19,9)}'`  ; echo $str3
    str4=`echo $er | awk '{c4='"c4"'; print substr($0,28,9)}'`  ; echo $str4
    str5=`echo $er | awk '{c5='"c5"'; print substr($0,37,9) }'`  ; echo $str5
    str6=`echo $er | awk '{c6='"$c6"'; print substr($0,46,9)}'` ; echo "测试6:"  $str6
    str7=`echo $er | awk '{c7='"$c7"'; print substr($0,55,9)}'`  ; echo $str7
# 定义变量str 为:打印二进制变量er  然后管道(并且规则)
# awk'{  }' 函数:内部变量c引用外部变量c用符号 '" "'  ; print 打印  substr($0,1,9) 截取范围字符串,$0所有字符串,1为从1开始,后面的9位数
echo "原始字符 " $er
echo "删除空格后 " $str1 $str2 $str3 $str4 $str5 $str6 $str7 | sed "s/ //g"
echo "脚本分隔" $str1 $str2 $str3 $str4 $str5 $str6 $str7
a=(
$str1 $str2 $str3 $str4 $str5 $str6 $str7
)
# 定义数组 a 变量,里面的元素用空格隔开
echo ${a[*]}              # 打印数组 a 的所有元素 [*]  ;  当 [1] 时,为角标 2 ,第二个元素
for i in ${a[*]}           # 定义for 循环  变量 i 是数组里面的所有元素
 do                           # 开始循环
   ((a=2#$i)) ; echo $a
                                # 将二进制数组元素转换为 10进制并且打印其值
      b[$c]=`echo $[$a]`
                              # 定义数组b 角标为变量c 由下面的 (c++) 辅助控制,打印数组变量a 的所有元素赋值给数组b
       ((c++))           # c++ 直到数组打印完
 done                     # 结束循环
echo "${b[*]} 总个数为:${#b[*]}"
for((i=0;i<=6;i++)) # 定义for循环,变量i 的值为0 它小等于6的这个范围,进行自动增加数数
do
   if [ $i -le 3 ]          # 进行判断,$i 循环次数在3次呢,等于控制数组的前3个元素
      then                 # 条件成立就进行
         b[$i]=`echo ${b[$i]} | awk '{printf("%04d",$0)}'`
                              # 修改数组的元素为 :打印元素${b[$i]} 并且:awk 函数进行格式化字 符串  "%04d" 格式化为4位整数,  $0 所有字符串
         echo "四位出现数:${b[$i]} "
   fi
   if [ $i -ge 4 ]       # 判断角标大等于 4
       then               # 条件成立就开始:
         b[$i]=`echo ${b[$i]} | awk '{printf("%07d",$0)}'`
                             # 字符串格式化为 7 位整数
      echo "7位出现数:${b[$i]} "
   fi
# 数组格式化为:角标前5位,格式化为4位整数,后5位格式化7位整数
done
echo "解密后的结果为:" ${b[*]} | sed "s/ //g"
目录
相关文章
|
5月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点讲解了如何使用 Kotlin 实现 AES-256 的加密和解密,并提供了详细的代码示例。通过生成密钥、加密和解密数据等步骤,展示了如何在 Kotlin 项目中实现数据的安全加密。
192 1
|
5月前
|
算法 安全 数据安全/隐私保护
Android经典实战之常见的移动端加密算法和用kotlin进行AES-256加密和解密
本文介绍了移动端开发中常用的数据加密算法,包括对称加密(如 AES 和 DES)、非对称加密(如 RSA)、散列算法(如 SHA-256 和 MD5)及消息认证码(如 HMAC)。重点展示了如何使用 Kotlin 实现 AES-256 的加密和解密,提供了详细的代码示例。
104 2
|
5月前
|
算法 JavaScript 前端开发
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
国标非对称加密:RSA算法、非对称特征、js还原、jsencrypt和rsa模块解析
358 1
|
5月前
|
DataWorks 算法 调度
B端算法实践问题之配置脚本以支持blink批处理作业的调度如何解决
B端算法实践问题之配置脚本以支持blink批处理作业的调度如何解决
57 1
|
5月前
|
算法 JavaScript 前端开发
消息摘要算法:MD5加密
消息摘要算法:MD5加密
70 1
|
6月前
|
算法 C# 数据安全/隐私保护
|
6月前
|
算法 安全 数据安全/隐私保护
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
支付系统---微信支付09------数字签名,现在Bob想要给Pink写一封信,信件的内容不需要加密,怎样能够保证信息的完整性,使用信息完整性的主要手段是摘要算法,散列函数,哈希函数,H称为数据指纹
|
6月前
|
算法 安全 网络安全
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
支付系统,网络安全06----支付安全---,机密性,加密算法,目前最流行的加密算法,AES加密算法,目前最流行的非对称加密算法RSA,对称加密和非对称加密的优缺点,非对称加密是基于非常复杂的数学算法
|
12天前
|
安全 算法 网络协议
【网络原理】——图解HTTPS如何加密(通俗简单易懂)
HTTPS加密过程,明文,密文,密钥,对称加密,非对称加密,公钥和私钥,证书加密
|
1月前
|
存储 SQL 安全
网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
随着互联网的普及,网络安全问题日益突出。本文将介绍网络安全的重要性,分析常见的网络安全漏洞及其危害,探讨加密技术在保障网络安全中的作用,并强调提高安全意识的必要性。通过本文的学习,读者将了解网络安全的基本概念和应对策略,提升个人和组织的网络安全防护能力。

热门文章

最新文章