以DES的方式实现对称加密,并提供密钥

注释都在代码里了,干了:

import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
import javax.xml.bind.annotation.adapters.HexBinaryAdapter;import org.apache.commons.codec.binary.Hex;public class Main {static String src = "Hello,sahadev!";public static void main(String[] args) {DES();}public static void DES() {try {// 以DES的方式初始化Key生成器KeyGenerator keyGenerator = KeyGenerator.getInstance("DES");keyGenerator.init(56);// 设置密钥的长度为56位// 生成一个KeySecretKey generateKey = keyGenerator.generateKey();// 转变为字节数组byte[] encoded = generateKey.getEncoded();// 生成密钥字符串String encodeHexString = Hex.encodeHexString(encoded);System.out.println("Key : " + encodeHexString);// 再把我们的字符串转变为字节数组,可以用于另一方使用,验证byte[] decodeHex = Hex.decodeHex(encodeHexString.toCharArray());// 生成密钥对象SecretKeySpec secretKeySpec = new SecretKeySpec(decodeHex, "DES");// 获取加解密实例Cipher cipher = Cipher.getInstance("DES/ECB/PKCS5Padding");// 初始化加密模式cipher.init(Cipher.ENCRYPT_MODE, secretKeySpec);// 加密byte[] doFinal = cipher.doFinal(src.getBytes());System.out.println("加密结果 : " + new HexBinaryAdapter().marshal(doFinal));// 初始化解密模式cipher.init(Cipher.DECRYPT_MODE, secretKeySpec);// 解密byte[] doFinal2 = cipher.doFinal(doFinal);// 输出解密结果System.out.println("解密结果 : " + new String(doFinal2));} catch (Exception e) {e.printStackTrace();}}}

附上输出结果:

Key : 619b862f5e2aad40
加密结果 : D98FA80E83593710C0686370665C2FEC
解密结果 : Hello,sahadev!


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/479583.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度CTR预估模型中的特征自动组合机制演化简史

文 | 杨旭东源 | 知乎众所周知,深度学习在计算机视觉、语音识别、自然语言处理等领域最先取得突破并成为主流方法。但是,深度学习为什么是在这些领域而不是其他领域最先成功呢?我想一个原因就是图像、语音、文本数据在空间和时间上具有一定的…

LeetCode 94. 二叉树的中序遍历(中序遍历)

文章目录1. 题目信息2. 解题2.1 递归2.2 循环,必须掌握1. 题目信息 给定一个二叉树,返回它的中序 遍历。 示例:输入: [1,null,2,3]1\2/3输出: [1,3,2]进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣&am…

想进美团不知道选哪个技术岗位?这里有一份通关秘籍!

春暖花开,美团春招已经启动,针对校招和社招开放了几千个职位,其中很大部分都是技术岗位。 随着互联网的高速发展,技术岗位在不断地细分,比如软件开发不仅分为前端和后端,前端会分为Web、iOS和Android三个方…

哈工大LTP本地安装及python调用

原文链接:https://blog.csdn.net/yangfengling1023/article/details/84559848 LTP即哈工大语言技术平台云,是基于云计算技术的中文自然语言处理服务平台 在线使用的网址:https://www.ltp-cloud.com/ github网址:https://github.c…

Nginx 简介和使用

Nginx简介Nginx发展介绍Nginx作者正向代理和反向代理概念网站代理服务器查看Nginx环境搭建下载安装前准备安装启动检测Nginx是否启动关闭重启Nginx核心配置文件说明Nginx主要功能1、静态网站部署2、负载均衡负载均衡概述负载均衡实现方式Nginx负载均衡策略负载均衡其他配置3、静…

论文浅尝 | 将文本建模为关系图,用于联合实体和关系提取

论文笔记整理:余海阳,浙江大学硕士,研究方向为知识图谱、自然语言处理。链接:https://www.aclweb.org/anthology/P19-1136动机本文提出了一种利用图卷积网络(GCNs)联合学习命名实体和关系抽取的端到端抽取模…

LeetCode 144. 二叉树的前序遍历(前序遍历)

文章目录1. 题目信息2. 解题2.1 递归2.2 循环,必须掌握1. 题目信息 给定一个二叉树,返回它的 前序 遍历。 示例:输入: [1,null,2,3] 1\2/3 输出: [1,2,3]进阶: 递归算法很简单,你可以通过迭代算法完成吗? 来源:力扣…

设计模式在外卖营销业务中的实践

一、前言 随着美团外卖业务的不断迭代与发展,外卖用户数量也在高速地增长。在这个过程中,外卖营销发挥了“中流砥柱”的作用,因为用户的快速增长离不开高效的营销策略。而由于市场环境和业务环境的多变,营销策略往往是复杂多变的&…

RabbitMQ 简介和使用

RabbitMQ一、RabbitMQ概述1、什么是消息队列2、为什么要使用消息队列3、RabbitMQ特点二、RabbitMQ安装1、安装前准备1.1 依赖包安装1.2 安装Erlang2、安装3、常用命令3.1. 启动和关闭3.2. 插件管理3.3. 用户管理3.4. 权限管理3.5. vhost管理三、RabbitMQ消息发送和接收1、 Rabb…

依存句法分析

1 依存句法比较出名的项目地址: https://cloud.tencent.com/developer/article/1419995 2 初学者|一文掌握HanLP用法: https://cloud.tencent.com/developer/article/1437816 3 《自然语言处理入门》12.依存句法分析–提取用户评论https://www.cnblogs…

Transformer哪家强?Google爸爸辨优良!

文:Zilong2017年Attention is all you need横空出世,Transformer横扫机器翻译,隔年诞生的BERT建立在层层堆叠的Transformer之上,凭借这个平平无奇的Attention点乘模型一举刷新了各种沉积许久的榜单,一夜间仿佛不懂Tran…

CCKS 2019 | 百度 CTO 王海峰详解知识图谱与语义理解

本文转载自公众号:机器之心。; 8 月 24 日至 27 日在杭州召开的 2019 年全国知识图谱与语义计算大会(CCKS 2019)上,百度 CTO 王海峰发表了题为《知识图谱与语义理解》的演讲。CCKS 2019 由中国中文信息学会语言与知识计…

LeetCode 145. 二叉树的后序遍历(后序遍历总结)

文章目录1. 题目信息2. 解法2.1 递归2.2 循环,必须掌握a. 单栈b. 双栈解法3. 前中后序总结1. 题目信息 给定一个二叉树,返回它的 后序 遍历。 示例:输入: [1,null,2,3] 1\2/3 输出: [3,2,1]进阶: 递归算法很简单,你可以通过迭代算法完成吗…

云原生之容器安全实践

概述 云原生(Cloud Native)是一套技术体系和方法论,它由2个词组成,云(Cloud)和原生(Native)。云(Cloud)表示应用程序位于云中,而不是传统的数据中…

领域应用 | HiTA知识图谱 “药品-适应证”图谱数据发布!

本文转载自公众号:OMAHA联盟。2019年8月,OMAHA对HiTA知识图谱服务平台(kg.omaha.org.cn)进行了更新,同步发布了医学知识图谱表达模型(schema)。2019年9月17日,首次发布了由OMAHA研发…

主题模型综述:短文本、细粒度、加入先验知识、作者写作偏好、主题内涵随时间的变迁、融入词嵌入特性、语言模型加持

原文链接:https://www.zhihu.com/question/34801598/answer/765580727 主题模型当然有用咯,谁用谁知道!这次我来展示下它的7个“变种”(短文本、细粒度、加入先验知识、作者写作偏好、主题内涵随时间的变迁、融入词嵌入特性、语言模型加持)&a…

HTTPS请求实现框架

HTTPS主要用于安全传输数据,从代码的角度来看,HTTPS主要使用了X509的方式进行了加密,至于密钥(证书)在什么地方,可能在购买HTTPS服务的时候被统一放置在DNS服务器之类的地方了吧(纯推测): package com.sahadev;import …

完全解析:使用Faiss进行海量特征的相似度匹配

文 | Gemfield源 | 知乎Faiss为稠密向量提供高效相似度搜索和聚类,支持十亿级别向量的搜索,是目前最为成熟的近似近邻搜索库。本文从最基本的特征比对开始讲解,中间详细讲解Faiss的环境配置以及使用步骤,最后落脚到为什么我们需要…

LeetCode 173. 二叉搜索树迭代器(中序遍历)

文章目录1. 题目信息2. 二叉树中序遍历1. 题目信息 实现一个二叉搜索树迭代器。你将使用二叉搜索树的根节点初始化迭代器。 调用 next() 将返回二叉搜索树中的下一个最小的数。 示例: BSTIterator iterator new BSTIterator(root); iterator.next(); // 返…

论文浅尝 | 面向时序知识图谱推理的循环事件网络

论文笔记整理:谭亦鸣,东南大学博士生,研究方向为知识库问答。来源:arXiv (short version accepted at ICLR 2019Workshop on Representation Learning on Graphs and Manifolds)链接:https://arxiv.org/abs/1904.05530…