加密-解密

python实现rsa的公钥加密、私钥解密及私钥加密、公钥解密 rsa包中现成的公钥加密、私钥解密代码 import rsa def rsa_encrypt(d_str): # 生成公钥和私钥 pubkey, privkey = rsa.newkeys(1024) # 将字符串进行编码 content = d_str.encode('utf-8') # 公钥加密 crypto = rsa.encrypt(co... 阅读详情
package com.vispractice.vpshop.util;

import java.io.UnsupportedEncodingException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.security.SecureRandom;

import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.KeyGenerator;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;

public class CryptoUtil {
private static final String[] hexDigits = { "0", "1", "2", "3", "4", "5",
"6", "7", "8", "9", "a", "b", "c", "d", "e", "f" };

public static String aesEncrypt(String origin, String key) {
try {
SecretKey secretKey = getSecretKey(key);
SecretKeySpec keySpec = getSecretKeySpec(secretKey);

Cipher cipher = Cipher.getInstance("AES");

cipher.init(1, keySpec);

byte[] result = cipher.doFinal(origin.getBytes("UTF-8"));

return byteArrayToHexString(result);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
}
return null;
}

private static String byteArrayToHexString(byte[] b) {
StringBuffer resultSb = new StringBuffer();
for (int i = 0; i < b.length; i++) {
resultSb.append(byteToHexString(b[i]));
}
return resultSb.toString().toUpperCase();
}

private static String byteToHexString(byte b) {
int n = b;
if (n < 0)
n += 256;
int d1 = n / 16;
int d2 = n % 16;
return hexDigits[d1] + hexDigits[d2];
}

public static String aesDecrypt(String origin, String key) {
try {
SecretKey secretKey = getSecretKey(key);
SecretKeySpec keySpec = getSecretKeySpec(secretKey);

Cipher cipher = Cipher.getInstance("AES");

cipher.init(2, keySpec);

byte[] result = cipher.doFinal(parseHexStr2Byte(origin));

return new String(result);
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
} catch (IllegalBlockSizeException e) {
e.printStackTrace();
} catch (BadPaddingException e) {
e.printStackTrace();
} catch (InvalidKeyException e) {
e.printStackTrace();
} catch (NoSuchPaddingException e) {
e.printStackTrace();
}
return null;
}

private static SecretKeySpec getSecretKeySpec(SecretKey secretKey) {
byte[] keyEncoded = secretKey.getEncoded();
SecretKeySpec keySpec = new SecretKeySpec(keyEncoded, "AES");
return keySpec;
}

private static SecretKey getSecretKey(String secretKey)
throws NoSuchAlgorithmException {
KeyGenerator _generator = KeyGenerator.getInstance("AES");
SecureRandom secureRandom = SecureRandom.getInstance("SHA1PRNG");
secureRandom.setSeed(secretKey.getBytes());
_generator.init(128, secureRandom);
return _generator.generateKey();
}

private static byte[] parseHexStr2Byte(String hexStr) {
if (hexStr.length() < 1)
return null;
byte[] result = new byte[hexStr.length() / 2];
for (int i = 0; i < hexStr.length() / 2; i++) {
int high = Integer.parseInt(hexStr.substring(i * 2, i * 2 + 1), 16);
int low = Integer.parseInt(hexStr.substring(i * 2 + 1, i * 2 + 2),
16);
result[i] = ((byte) (high * 16 + low));
}
return result;
}

public static void main(String[] args) {
//  System.out.println(aesDecrypt("A76199CA8307801FD33FB811191FE137",
//  "vispractice"));
System.out.println(aesEncrypt("HNhuinong@888", "vispractice"));
}
}
C#常用加密解密方法(RAS加密解密) 本节主要分享RAS加密解密:RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和LenAdleman在(美国麻省理工学院)开发的。RSA取名来自开发他们三者的名字。RSA是目前最有影响力的公钥加密算法,它能够抵抗到目前为止已知的所有密码攻击,已被ISO推荐为公钥数据加密标准。RSA算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。RSA算法是第一个能同时用于加密和数字签名的算法,也易于理解和操作。 阅读详情

相关推荐

定制机破解

现在手机定制机型非常多,这款软件可以把定制权限打开,让你无限用各种移动商的卡

把解密方式完整写出来用SecretKey 方式解密 完整写出来

这个示例假设密钥和加密内容都是以 Base64 编码的字符串形式提供的。请确保密钥与加密算法一致,并且具有适当的长度(DESede 密钥通常是 24 字节长)。

qq_33192454的博客 878

团子杂记:SAP收入确认工具RAR(Revenue Recognition&Reporting)在新收入准则下的应用

SAP收入确认工具RAR知识分享

Lucas1211的博客 4284

使用AES对称加密算法进行加解密

使用CBC工作模式,需要一个iv作为初始化向量,用于增强使用AES加密算法的安全性。同一条数据,密钥相同,iv不同的话,加密数据也会不一样,因此,加解密时必须使用相同的key和iv,否则会解密失败。/*** 使用AES对称加密算法的CBC模式进行加解密*///使用AES算法的 CBC模式 和 PKCS7填充static {//向Java的Security系统添加一个新的安全提供者(Provider),即 BouncyCastle提供者。

qq_54655539的博客 2119

Docker入门教程:在腾讯云轻量服务器上部署你的第一个容器化应用 (2025)

还在为“在我电脑上明明是好的”而烦恼?本篇Docker入门教程,用通俗易懂的比喻解释镜像、容器的核心概念,并手把手带你在腾讯云轻量服务器上,从运行Nginx到编写Dockerfile打包自己的Python应用,轻松掌握容器化部署。

Clownseven的博客 2084

Unity 升级 xLua 版本,编译不同平台链接库

Unity 升级 xLua 详解

LymanCao的专栏 1801

登录鉴权方案

我们在开发中需要用到对接口的登录鉴权,首先后台会根据几个参数组成字符串+secretKey,用AES(ECB)加密算法来生成秘钥ticket,第三方访问的时候,带在提供的系统认证地址后面(列如http(s)://test.com?ticket=秘钥)参数:这些参数包括时间戳,姓名,手机号,8位随机数,这些都是基本的,有的还需要根据实际业务场景添加一些信息,比如人员所在地,所在行政区划,年龄,职位信息等等。字符串参数生成规则:timeStamp=时间戳&mobile=89757&userName=柳如是&ra

sdgames的博客 1025

XPe开发初体验(一)XPe概述

XP Embedded是微软Windows Embedded产品线中非常重要的一环,不过比起大名鼎鼎的Windows Embedded CE,XPe显得过于低调了。在接下来的一段时间里,我希望能够用六篇的篇幅来描述一下XPe的整个开发过程。这个系列文章主要是针对有Windows编程经验,但是没有嵌入式开发经验的开发者,提供一些概念和开发过程的初步介绍。XP Embedded是一个基于Windo

aawolf = new Mobile.MVP 1万+

AES加解密工具类(JDK)

AES加解密工具类的使用

Dangerous 1052

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

芒果YOLO11改进81:主干Backbone篇之DCNv3结构:即插即用|使用pytorch代码实现,并针对YOLO11专门优化模块

包括YOLOv5、YOLOv7、YOLOv8等模型改进 736

【深度学习新浪潮】什么是system 1和system 2?

System 1(快速生成)指大模型直接基于输入生成响应,无需显式中间推理步骤。例如,GPT-4等模型在默认状态下通过Transformer直接输出结果,擅长快速回答简单问题或生成连贯文本,但在复杂逻辑任务中可能出错。这类模型的内部计算以向量形式隐式进行,难以处理符号推理等需要离散决策的任务。System 2(慢速推理)指模型通过生成中间token(如思维链、分步推导)或多次调用LLM进行复杂推理。

专注:太空算力、AI infra、异构调度、大模型成本工程 928

AES加密解密

AES加密解密 AES加密解密和DES加密解密代码一样,只需要修改加密算法就行,拷贝ESC代码

qq_39368007的博客 1500

泛微OA提交流程到下一个节点

泛微OA后端接口强制流程归档

CXYCMY的博客 2246

【加密解密】PHP中常用的加密解密方法

php加密解密:php加密和解密函数通常可以用来加密一些有用的字符串存放在数据库里或作为各个子系统间同步登陆的令牌,并且通过解密算法解密字符串,该函数使用了base64和MD5加密和解密。①第一种加密解密算法[php] view plain copy&lt;?php  function encryptDecrypt($key, $string, $decrypt){       if($decry...

民族风的专栏 6874

科研级YOLOv8 Neck革新:BiFPN双向特征金字塔赋能,让多尺度融合更高效的实战指南

在文件夹下新建BiFPN.py,将上述BiFPNLayer和BiFPN类的代码写入其中。这一步是为了让YOLOv8的代码架构能识别我们的自定义Neck模块。

m0_64661770的博客 153

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

各种加密解密函数(URL加密解密、sha1加密解密、des加密解密)

各种加密解密函数(URL加密解密、sha1加密解密、des加密解密) 普通hash函数如md5、sha1、base64等都是不可逆函数。虽然我们利用PHP可以利用这些函数写出可逆函数来。但是跨语言时这类可逆函数非常难搞定。所以这时尽量使用AES DES RC4 Rabbit TripleDes这些方法。 包含超时的加密解密函数[php] view plaincopyprint?在CODE上查看代码片

lj093的博客 1478

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

openssl公钥加密私钥解密和私钥加密公钥解密

最近在弄音视频上云,参考了腾讯云中SecretId和SecretKey,直观理解SecretKey是私钥,用于签名,然后公钥验证签名,个人理解SecretId在腾讯云系统里面有一条记录,此记录存放着公钥信息。 关于公钥,私钥,一般认为是公钥加密,私钥解密;私钥签名,公钥验签,如下所示: 生成公钥私钥 openssl genrsa -out RSAPrivateKey.pem 1024 openssl rsa -in RSAPrivateKey.pem -out RSAPublicKey.pem -pubo

tusong86的博客 7941

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

简单的文本加密解密

简单的文本加密解密加密模块解密模块 加密模块 准备一个文本文件(非二进制),其中包含ASCII码的字符和中文字符。 设计一个方法 public static void encodeFile(File encodingFile, File encodedFile); 在这个方法中把encodingFile的内容进行加密,然后保存到encodedFile文件中。 加密算法: 数字: 如果不是9的数...

清宵尚温的博客 5597

计算机加密和解密的方法,加密和解密

目录介绍1.加密和解密1.1 问答环节1.2 加解密概况2.对称加密和非对称加密2.1 什么是对称加密2.2 什么是非对称加密2.3 常见对称加密有什么2.4 常见非对称加密有什么2.5 非对称加密用途3.关于单向加密3.1 MD加密3.2 什么叫做加盐4.加密和解密代码展示4.1 DES加密和解密4.2 AES解密和解密5.RSA非对称加解密5.1 公钥加密,私钥解密5.2 私钥加密,公钥解密5...

weixin_30985047的博客 1866

加密与解密

对称加密,就是加密和解密使用同一个密钥。(密钥的保密性至关重要)常见的有 AES、DES、3DES、Blowfish 等。

scj1022的博客 3789

ASE加密与解密

ASE加密与解密

yaochencangku的博客 1713

python加密和解密_如何在Python中加密和解密数据

python加密和解密 您是视觉学习者吗? 在YouTube上查看本教程。 点击这里 加密是对信息进行编码的过程,只有授权方才能访问它。 这一点至关重要,因为它可以安全地保护您不希望任何人看到或访问的数据。 在本教程中,您将学习如何使用Python使用加密库对文件或任何字节对象(也包括字符串对象)进行加密 。 我们将使用对称加密,这意味着与加密数据相同的密钥也可用于解密。 那里有很...

编程故事的地方 2766

JS加密Java解密,Java加密JS解密,base64加密解密,AES加密解密

JS、Java相互加密解密 代码获取路径 百度网盘:链接: https://pan.baidu.com/s/1wyEOoBFfRReGm5tuxwhGTQ 提取码:sp21 底部也有源码 实现说明 JS加密 code = aesMinEncrypt(code);// AES加密 pass = $.base64.encode(pass)// base64加密 Java解密 code = AesMin.aesDecrypt(code);// AES解密 pass = BASE64Util.decode(pas

weixin_43992507的博客 1171

前端加密、解密

像这种功能,不必追求底层怎么实现,以我而言,最好是2分钟做完加密最好,结果今天被“百度”来的坑了一把,加密还正常,解密直接成了空白字符。简直误人子弟。于是我翻了翻以前项目写的,在现有的项目里运行成功并完成功能,特此整理。......

接着奏乐接着舞的博客 5277

RSA加密与解密

RSA加密与解密RSA算法的密钥由公钥和私钥组成,公钥用于加密,私钥用于解密。顾名思义,公钥就是可以进行公开的密钥,一般可以公开给你的合作伙伴;私钥就是私有的,也就是只有你知道的,你的合作伙伴通过你提供的公钥进行加密的内容只有你能进行解密,这样也就只有你知道他发的是什么内容。用于加密的公钥和私钥是配对的。这样的一对密钥在Java中由java.security.KeyPairGenerator来产生

Elim的博客 7583
上一篇: 面试题 java垃圾回收机制
下一篇: 缓存Ehcache、Memcached、Redis的统一接口实现
独黑
博客等级 码龄16年 5粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值