好久没写博客了!!!今天记录一下!!!

今天遇到一个SHA256密码加密后,我还要看到密码,这个该如何处理?SHA256类似于MD5都是单向加密的,如果要靠算法实现解密,目前理论上是不可能的。不过如果你是开发人员,那么你是可以做一些处理的,因为SHA256加密后是256位,也就是64个字符,所以可以从这里下手。解决方法就是将密码隐藏到加密后的密文中,你可以设置一套只有自己知道的排序方式,那么当你要解密后,你就可以通过自己的这套排序方式将密码"挖"出来!

附上我处理的java代码

        //加密public static String SHA256(String param) {String pwd256=DigestUtils.sha256Hex(param);StringBuffer pwd=new StringBuffer(pwd256);return pwd.toString();}//解密public static String decryPwd(String param){String pwd=StringUtils.substring(param,64);return pwd;}

其实原理很简单,我做的处理就是将密码放到加密后的密文后面,解密的话直接截取第64个字符开始就行了。

这样的处理方法确实显得有点草率,不过确实是解决了我的问题,不过安全系数比较低。所以可以再复杂一点,原理也就是将密码拆开成字符,按照一定的规则插入到密文中,解密的话就按照这样的规则取字符拼接就行了。

附上我处理的java代码

public static String SHA256_3(String param){char paramChars[]=param.toCharArray();String pwd256=DigestUtils.sha256Hex(param);System.out.println("pwd256:"+pwd256);char pwd256Chars[]=pwd256.toCharArray();int ss=0;int ss2=0;collations=new ArrayList<>();collations.add(5);//按间隔3的规则插入,一般密码不会长于16位,所以不会出界for(int i=0;i<paramChars.length-1;i++){collations.add(collations.get(i)+3);}for(Integer integer:collations){System.out.println("integer:"+integer);}char newpwd256[]=new char[64+paramChars.length];for(int i=0;i<newpwd256.length;i++){for(Integer integer:collations){if(i==integer){newpwd256[i]=paramChars[ss];System.out.println("ss:"+ss);ss++;break;}}for(int j=0;j<collations.size();j++){if(i==collations.get(j)){break;}if(i!=collations.get(j)&&j==collations.size()-1){newpwd256[i]=pwd256Chars[ss2];ss2++;System.out.println("ss2:"+ss2);}}}return new String(newpwd256);}public static String decryPwd2(String pwd){char pwdChars[]=pwd.toCharArray();StringBuffer sb=new StringBuffer();for(int i=0;i<pwdChars.length;i++){for(Integer integer:collations){if(i==integer){sb.append(pwdChars[i]);}}}return sb.toString();}

写的有点复杂,逻辑有一点乱,不过还是能用的!密码6-16位是能用的!

SHA256加密之显示明文密码的处理方法相关推荐

  1. linux 查明文密码,win10系统查看明文密码的操作方法

    很多小伙伴都遇到过对win10系统查看明文密码的设置方法,想必大家都遇到过需要对win10系统查看明文密码进行设置的情况吧,那么应该怎么设置win10系统查看明文密码的操作方法非常简单,只需要1.因为 ...

  2. sha256加密_python中使用加盐哈希函数加密密码

    开发网站离不开用户的注册与登录,今天来说说在网站开发的时候关于用户密码的保存方式,传统的方式有以下几种 - 明文存储:肉眼就可以识别,没有任何安全性. 谁用谁傻缺 - 加密存储:通过一定的变换形式,使 ...

  3. EditText显示明文与密码

    布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayoutxmlns:android=&q ...

  4. 仿京东显示隐藏密码明文案例(字体图标实现)

    仿京东显示隐藏密码明文案例(字体图标实现) 眼睛使用的是 iconfont 阿里矢量图标库的内容 链接:https://www.iconfont.cn/search/index?代码案例展示: 字体图 ...

  5. android判断密码字符串,逆向分析苏宁易购安卓客户端加密到解密获取明文密码(附demo验证) | WooYun...

    第一次花这么长时间测一个漏洞(主要时间都花在写demo上了...),求加精 1.苏宁易购Android最新版客户端使用的是通过本地xml文件和db方式存储用户登录凭证的. (1)/data/data/ ...

  6. springboot明文密码加密解密

    第一步:pom文件加入依赖 如图: 这里提供一个版本, <dependency><groupId>com.github.ulisesbocchio</groupId> ...

  7. java web系统明文密码加密传输

    最近项目PL提出系统数据越权和明文密码传输问题,涉及网络安全的问题,这让我一脸懵逼,查阅相关资料后做相关记录 1. 数据越权: 涉及重要功能需要验证用户是否当前用户操作,修改密码功能接口参数用户Id人 ...

  8. RSA加密明文密码传输

    前言:前端对用户输入的密码明文传输给后端是不安全的行为,所以要将明文密码转成密文.而相比md5.对称加密.base64来说,用 RSA 非对称加密是较安全的方式. 下面便是代码实现,拿来即用. 1.生 ...

  9. android布局密码,Android中EditText显示明文与密码的两种方式

    效果图如下所述: 布局 xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="h ...

最新文章

  1. 从硬件到软件 统一沟通将引领通讯市场
  2. c# 可选参数与命名实参
  3. Stream流与Lambda表达式(四) 自定义收集器
  4. Just another board game 博弈-vector套vector
  5. 吃鸡服务器8月10日维护,《黑潮之上》2021年8月10日不停服维护公告
  6. python 函数进度条怎么_python输出结果刷新及进度条的实现操作
  7. Ajax实现原理详解
  8. LightGBM最强解析,从算法原理到代码实现~
  9. python re正则查找_python正则表达式 - re
  10. 计算机网络之数据链路层:10、CSMA协议-随机访问介质访问控制
  11. java播放声音类和一个简单示例
  12. mysql快速启动_GitHub - TianSiQiang/Spring-Boot-MyBatis-Mysql: Spring Boot+MyBatis+Mysql 快速启动示例...
  13. python3.6安装pip3_python3.6如何安装pip
  14. Android实战开发通用流行框架大全
  15. 如何在EdrawMax中同时画有箭头和没箭头的直线
  16. elasticsearch使用中文分词器和拼音分词器,自定义分词器
  17. java字符串第一个字母表达_取一个字符串的第一个字母
  18. 数据库的应用之(智慧城市)
  19. 英语单词:through; fall through; write through
  20. C#使用ODBC链接MySQL数据库

热门文章

  1. 科幻小说《三体》读书笔记范文解读
  2. 如何简单使用代理服务器上网
  3. 全平台知识付费系统源码 支持微信小程序+公众号+H5+PC端 含搭建部署教程
  4. RS485/云台控制(PTZ)学习文档
  5. Idea导出可运行jar包及运行方法
  6. python矩阵定义_python定义矩阵
  7. 5G来临,细数一下VR全景视频应用模式
  8. VMware Tools packages for macOS官方下载地址
  9. Shellcode的原理及编写
  10. 旋转变换的一些个人理解