开发微信公众号过程中,需要使用sha1加密算法与微信api对接,特此学习下sha1算法的实现。

1:安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)里面定义的数字签名算法(Digital Signature Algorithm DSA)。

2:1byte等于二进制8位,则分成高四位和第四位进行加密解析。由于15在二进制中表示为"00001111",则和15低四位与(&)运算,运算规则:0&0=0; 0&1=0; 1&0=0; 1&1=1;
代码如下:

    //sha1加密private static String sha1(String src) {try {//获取加密对象MessageDigest md = MessageDigest.getInstance("sha1");//加密byte[] digest = md.digest(src.getBytes());//sha1加密后结果只能是如下数组的数值char[] chars = {'0','1','2','3','4','5','6','7','8','9','a','b','c','d','e','f'};//拼接加密后的字符串StringBuffer sb = new StringBuffer();//处理加密结果for (byte b : digest) {//1byte代表8位(二进制),分别对高四位和低四位进行与运算,得到chas对应的数值sb.append(chars[(b>>4)&15]);sb.append(chars[b&15]);}return sb.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}return null;}

手写SHA1加密算法(Java版)相关推荐

  1. 手写一套迷你版HTTP服务器

    本文主要介绍如何通过netty来手写一套简单版的HTTP服务器,同时将关于netty的许多细小知识点进行了串联,用于巩固和提升对于netty框架的掌握程度. 服务器运行效果 服务器支持对静态文件css ...

  2. 金九银十!阿里P8手写的内部Java核心开发成长手册,涵盖p5-p8技术栈,秋招必看!

    前言 程序员的年龄一直是大家讨论的热门话题,本人最近和不少小公司的程序员打交道.经过和他们的深入交流,我感受到了不少小公司程序员的现状,由此深深地感叹,可能真有不少小公司的程序员未必能干到30岁,甚至 ...

  3. java keypad game,玩机技巧:手写笔控制JAVA游戏

    手写笔控制JAVA游戏 1.进入JAVA游戏页面: 2.点下拉菜单键,选择Options-JavaPreferences. 3.进入设置菜单后:第一项(Preferences)设置为:Applicat ...

  4. 基于感知机的手写数字识别java实现

    多层感知机的手写数字识别,迭代10次对训练集的正确率97 Main函数,在绘制完数字后,要点下确定按钮再去识别,重绘按钮自然是再次绘图 训练自己的网络结构会替换之前训练的网络结构,没有写保存或者另存新 ...

  5. java 手写签名,signature java html5+ 手写签名 源码 Develop 238万源代码下载- www.pudn.com...

    文件名称: signature下载 收藏√  [ 5  4  3  2  1 ] 开发工具: Java 文件大小: 491 KB 上传时间: 2013-08-03 下载次数: 17 提 供 者: 孙晨 ...

  6. 手写一个栈 java,数据结构|用java自己手写实现一个栈

    javaDEMO 本网站记录了最全的各种JavaDEMO ,保证下载,复制就是可用的,包括基础的, 集合的, spring的, Mybatis的等等各种,助力你从菜鸟到大牛,记得收藏哦~~ https ...

  7. 手写数字识别增强版项目实践规划

    项目人员: 1160300925 王卓 1160300630 范航明 1160300316 张雅舒 1160300920 陈浩楠 项目选择: 项目一,手写数字增强版 Github 仓库地址: http ...

  8. 【uni-app】使用写字板,实现手写签名----直接使用版

    需求 用户需在APP或小程序使用手写的方式签字或签名 效果图片 实现方式 封装成组件调用(推荐),如需了解使用可点击前往-[封装组件版] 使用的页面内直接使用,目前的教程就是直接使用的,未封装成组件 ...

  9. 手写识别ocr java,怎么识别手写文字?迅捷OCR文字识别软件帮你快速完成!

    怎么识别手写文字?虽然现在手机.平板等设备已经普及开来,但是从小在学校养成的习惯,还是让大部分人选择会手写的方式.手写其实也有很大的缺陷,无论是在生活中还是在网络上进行分享都比较困难. 那么有没有将手 ...

最新文章

  1. AI规模化落地,英特尔至强的七重助力
  2. Web Components是不是Web的未来
  3. python和java哪个-Python和Java到底哪个更好?
  4. python语言if语句-python的if语句
  5. spring原始注解(value)-03
  6. Linux编程练习 --进程间通信1--无名管道
  7. python将两个list类型的全排列转换为tuple类型
  8. 光学算法——Zernike拟合
  9. 【数字信号】基于matlab GUI双音多频(DTMF)信号检测【含Matlab源码 512期】
  10. python实现小型搜索引擎设计_Python实现:设计克隆模式
  11. (专升本)Internet(计算机网络系统)
  12. iOS 9 真机调试
  13. 数据库期末大作业:机票预定信息系统数据库设计与实现
  14. Python3遇到问题unicodeescape codec cant decode bytes in position 2 3 truncated UXXXXXXXX escape解决办法
  15. 勘探重力实验matlab,MATLAB在重力图制作中的应用
  16. JWS 批注参考WebService注解
  17. html页面input框输入不了,input框不能输入问题
  18. IV与PSI的理解--深入浅出
  19. mysql数据字段属性
  20. Kali-Linux安装驱动并使用Blueman连接蓝牙耳机

热门文章

  1. idea提交时忽略.class、.iml文件和文件夹或目录的方法
  2. 常用adb命令的使用
  3. Java通SAS下载sas脚本
  4. Excel 用vba自动汇总实例
  5. json-editor-vue3 Vue3 json编辑器使用
  6. 电子助力方向机控制模块_电动转向助力系统的设置(功能校准)
  7. lopatkin俄大神精简中文系统Windows 10 Pro 18362.145 19H1 Release x86-x64 ZH-CN DREY
  8. EJB3+JBoss5+Myeclipse9创建HelloWorld实例
  9. C语言链表实现学生信息管理系统
  10. 精艺熔炼,笃行致远——美和易思34期大数据技术师资项目成功举行