https://blog.csdn.net/weixin_44876457/article/details/89102723

https://blog.csdn.net/weixin_44876457/article/details/89102723

java的BASE64Encoder,BASE64Decoder加密与解密

package com.app.common;import java.io.ByteArrayOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;import sun.misc.BASE64Decoder;
import sun.misc.BASE64Encoder;/**
*@DEMO:napp
*@Author:jilongliang
*@Date:2013-7-25
*/
@SuppressWarnings("all")
public class EDncrypt {
private static BASE64Encoder encoder = new BASE64Encoder();// 加密
private static BASE64Decoder decoder = new BASE64Decoder();// 解密/**
* 加密文件
*
* @param f
* @param path
*/
private static String encryptFile(File f, String path) {
InputStream in = null;
OutputStream out = null;
String key = "";
try {
f = new File(path);
in = new FileInputStream(f);
out = new ByteArrayOutputStream();
// System.out.println(f.getAbsolutePath());
// System.out.println(f.length());
encoder.encodeBuffer(in, out);
key = out.toString();
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return key;
}
/**
*解密
*
* @param f
* @param path
*/
private static String decryptFile(File f, String path) {
InputStream in = null;
OutputStream out = null;
String key = "";
try {
f = new File(path);
in = new FileInputStream(f);
out = new ByteArrayOutputStream();
decoder.decodeBuffer(in, out);
key = out.toString();
in.close();
out.close();
} catch (IOException e) {
e.printStackTrace();
}
return key;
}/**
* 加密
*
* @param key
* @return
* @throws Exception
*/
public static String encryptBASE64(String inputStr) {
String value = "";
try {
byte[] key = inputStr.getBytes();
value = encoder.encodeBuffer(key);
} catch (Exception e) {
e.printStackTrace();
}
return value;
}/**
* 解密
*
* @param key
* @return
* @throws Exception
*/
public static String decryptBASE64(String outputStr) {
String value = "";
try {
byte[] key = decoder.decodeBuffer(outputStr);
value = new String(key);
} catch (Exception e) {
}
return value;
}
}
可逆的加密:Apache的
public static String encodePassword(String rawPass,String type) {String pass="";if(type.toLowerCase().equals("md5")){Md5PasswordEncoder md5PasswordEncoder=new Md5PasswordEncoder();pass=md5PasswordEncoder.encodePassword(rawPass, null);}return pass;
}public static String encodePassword(String rawPass) {return encodePassword(rawPass,"MD5");
}
java 加密 Digest EnCrypt 加密与解密
package digest;import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;import org.apache.commons.codec.binary.Base64;public class DigestExample {public static void main(String[] args) throws Exception {//加密内容final String content = "hello hello hello";/** 单向加密 md5 & sha*///md5 加密MessageDigest md5 = MessageDigest.getInstance("md5");byte[] md5SecretStr = md5.digest(content.getBytes());System.out.print("md5 加密 : { " + new String(Base64.encodeBase64(md5SecretStr)) + " }\n\r");//sha 加密MessageDigest sha = MessageDigest.getInstance("sha");byte[] shaSecretBytes = sha.digest(content.getBytes());System.out.print("sha 加密 : { " + new String(Base64.encodeBase64(shaSecretBytes)) + " }\n\r");/** 对称加密 aes & des*///aes 加密KeyGenerator aesKeyGenerator = KeyGenerator.getInstance("aes");SecretKey aesSecretKey = aesKeyGenerator.generateKey();Cipher aesCipher = Cipher.getInstance("aes");aesCipher.init(Cipher.ENCRYPT_MODE, aesSecretKey);byte[] aseResultBytes = aesCipher.doFinal(content.getBytes());System.out.print("aes 加密 : { " + new String(Base64.encodeBase64(aseResultBytes)) + " }\n\r");//aes 解密aesCipher.init(Cipher.DECRYPT_MODE, aesSecretKey);aseResultBytes = aesCipher.doFinal(aseResultBytes);System.out.print("aes 解密: { " + new String(aseResultBytes) + " }\n\r");//des 加密KeyGenerator desKeyGenerator = KeyGenerator.getInstance("aes");SecretKey desSecretKey = desKeyGenerator.generateKey();Cipher desCipher = Cipher.getInstance("aes");desCipher.init(Cipher.ENCRYPT_MODE, desSecretKey);byte[] dseResultBytes = desCipher.doFinal(content.getBytes());System.out.print("des 加密 : { " + new String(Base64.encodeBase64(dseResultBytes)) + " }\n\r");desCipher.init(Cipher.DECRYPT_MODE, desSecretKey);dseResultBytes = desCipher.doFinal(dseResultBytes);System.out.print("aes 解密: { " + new String(dseResultBytes) + " }\n\r");}}console run result
md5 : { ZnptFLLcFU/qw2LdrU1MqA== }sha : { g52cyhSXeHXr8kcWODkq738OAVk= }aes 加密 : { pudmyrvBANStqfcDIb7+DFPK+5gPZP/ais6sibTKyIk= }aes 解密: { hello hello hello }des : { Nx2RwaJBl5+P2eVb0v+JRVTd8tfwAQQ7KA28n97Ln8E= }aes 解密: { hello hello hello }rsa 非对称加密package digest;import java.security.KeyPair;
import java.security.KeyPairGenerator;
import java.security.PrivateKey;
import java.security.PublicKey;import javax.crypto.Cipher;import org.apache.commons.codec.binary.Base64;public class RsaExample {public static void main(String[] args) throws Exception {final String context = "rsa加密";KeyPairGenerator kpg = KeyPairGenerator.getInstance("rsa");KeyPair gkp = kpg.generateKeyPair();PrivateKey privateKey = gkp.getPrivate();PublicKey publicKey = gkp.getPublic();byte[] encode1 = privateKey.getEncoded();byte[] encode2 = publicKey.getEncoded();byte[] key1 = Base64.encodeBase64(encode1);byte[] key2 = Base64.encodeBase64(encode2);System.out.println(new String(key1));System.out.println(new String(key2));/*System.out.println("privateKey:{"+privateKey+"}");System.out.println("publicKey:{" +publicKey+"}");*/Cipher cipher = Cipher.getInstance("rsa");cipher.init(1, privateKey);byte[] result = cipher.doFinal(context.getBytes());byte[] signatrue = Base64.encodeBase64(result);System.out.println("result:{" + new String(signatrue)+"}");byte[] i = Base64.decodeBase64(signatrue);cipher.init(2, publicKey);System.out.println(new String(cipher.doFinal(i)));}
}console run resultMIICdgIBADANBgkqhkiG9w0BAQEFAASCAmAwggJcAgEAAoGBAI+Ktf/bAPnTER4wL+jYwSgjvwg3VU4KRrdvoOipy862ROcJdw9nCGRIyfFpIYFYALY5km0GTbR1cvfB5N47GbEad8OMsMi1JOvNgikp8ofUgFd4arsiD6p6sWd7RswvVfgdFKQmP6Obu9jM5zCZxetaH/b0xK6tBNJJW/wn+zG9AgMBAAECgYAdpaixj6pD7zQ55/n9PcenYrqyF7umwriYapXxeCCAMWVJ0sqkg8NX8zDCi9Q/ws1i1cFIg2TJQPjd804yGELV4MQ886e723O6nfTzlgCcFHNub6s4IIvQczQCRx3BJzro2KAbPFeqV/hDIgaNxlJx0W1UEbQqkBYHH1BkAjXwAQJBAOmcslHLYJe5RWp6wyDjcj9GiQMDgt18vIdsW/MOEBnQeYWE2bwsiE092youoZ7aNPKDoZzoJTEpVUPVLQH0deECQQCdTEh06COqviUlAQPJIYDpDi1qoSvw+07NDsaho7Lpao/F/iq1XgZvH6wKod4EmY3IdX8e0RvcrajMMWm6aj9dAkASAh5M59yeVY3gU25PTrkz34AYV2DzKfZuig/cgK0FEGkNvdv7AYPQUIBglA+pazDBsRv4OH0FeSY1gG1jxTCBAkABfPNCh9+ugdYAH55VjMeXbNbpJ1UvFnGMZxNh/BZ5NtTdXqYwyQ7uhjIud5GOIZXBy7rEI95LnCj4pY8GgHLRAkEA1mP3Z6x42aZaHKQcEuT38/BPBg9OtTZGaWipeGp7dlDuD8XW/NBianft2VqI73GXo7gSn7HDHp5ZhLVhCNsSOA==
MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCPirX/2wD50xEeMC/o2MEoI78IN1VOCka3b6DoqcvOtkTnCXcPZwhkSMnxaSGBWAC2OZJtBk20dXL3weTeOxmxGnfDjLDItSTrzYIpKfKH1IBXeGq7Ig+qerFne0bML1X4HRSkJj+jm7vYzOcwmcXrWh/29MSurQTSSVv8J/sxvQIDAQAB
privateKey:{Sun RSA private CRT key, 1024 bitsmodulus:          100798507655562672634382563625239291964945102222464707977557265818850161373345900576705678605564617099559134111187263533690577667029773051561093784895113396514352229224857085774815551784918475310931537765905461572526427050491602207190137661866307492752828388294013838106222346293330945028978188314252819509693public exponent:  65537private exponent: 20818905345464338263561078188370524376115734679391523676460856464652879813687079210313076057874523659301347930619814748798932805909867830781557982091646774464612734768033397966651666313646610127404321982687308504412645000261745579169493965806942893895422786998315749053429010938321263854313553436041981325313prime p:          12235258251843427800322533580271468214768411862644285725616323425147295210732054481178485319627614069545483443675930314214646122186102225213965689240712673prime q:          8238363717445509899921811355733496220359326926172197592231787257563498251698094349890806400362388734966369330560689902140965710482536375658188849975803741prime exponent p: 943169884009231384519118050071432281322154153075040534138176388053223910228090074902935865766799003301093769282249720728937733025377854368996973649145985prime exponent q: 77937432363645210155355341876417407824935268538791255431034501116764101439687787004780505183708149834126508460070307449645219349362536474176069807665873crt coefficient:  11228541263870362801929539584646038800421516291723873773379889902535223043030350582050117672514417336396982286570742313855229425370741626261320117750796856}
publicKey:{Sun RSA public key, 1024 bitsmodulus: 100798507655562672634382563625239291964945102222464707977557265818850161373345900576705678605564617099559134111187263533690577667029773051561093784895113396514352229224857085774815551784918475310931537765905461572526427050491602207190137661866307492752828388294013838106222346293330945028978188314252819509693public exponent: 65537}
result:{XxdVrhgArX5/AnDGGqU2/VGTcrmjcY37SnKxnTR7+5VFaACbj6aSi+S3xyfgu1UHwlDUrpYczCU+ikXrbSQWs9+WGT1CixYrCC04VuxxZ32G4gKLY8Q9Ag904PuTQbA/s/YWuHxfvKykr9r2Epx2wHrZiRKA6eFvVQIQCKzWjvk=}
rsa加密

java的BASE64Encoder,BASE64Decoder加密与解密相关推荐

  1. java中md5加密和解密_如何在java中实现md5加密和解密

    如何在java中实现md5加密和解密 关注:273  答案:1  mip版 解决时间 2021-01-19 20:37 提问者精神疯裂 2021-01-19 05:36 如何在java中实现md5加密 ...

  2. Java代码:字符串加密与解密

    Java代码:字符串加密与解密 获取字符串的长度length() 把字符串转为字节数组getBytes() 字节数组转换为字符串String(b) /* *java代码:字符串加密与解密 **/ pa ...

  3. Java工具类——DES加密和解密工具 I

    可以指定不同的密钥对同一字符串进行不同的加密操作,增强加密性能. package com.app; import java.security.Key; import java.security.Sec ...

  4. Java中常用的加密与解密

    一.对称加密与非对称加密 1.对称加密 对称加密采用了对称密码编码技术,它的特点是文件加密和解密使用相同的密钥加密,这种方法在密码学中叫做对称加密算法,对称加密算法使用起来简单快捷,密钥较短,且破译困 ...

  5. JS前端加密和Java后端的AES加密和解密

    先上前端代码 import cryptoJs from 'crypto-js' let keyOne = 'ZHyXgjF7BejeJySh5vX4O6qE'export default {//加密e ...

  6. Java中的AES加密和解密(CBC模式)

    通过有线方式传输诸如纯文本密码之类的机密数据总是容易受到安全性的影响,始终建议对此类信息进行加密并使用SSL传输这些机密数据.Java为此提供了多种加密算法.在本文中,我们将讨论Java中具有CBC模 ...

  7. Java课程设计——文本文件加密与解密软件设计与实现

    源文件链接: Java文本文件加密与解密-其它文档类资源-CSDN文库 摘要 随着现代网络技术的飞速发展,人们的个人信息.文件传递以及电子商务等方面都需要大力的保护,文件加密技术也应运而生.本次使用J ...

  8. Java实现文件的加密与解密

    转载自:https://www.cnblogs.com/tgyf/p/4676878.html 先对文件与加密的相关知识做一个极为简单的科普(知道的可以跳过). 文件与字串 A.文件的操作流程一般为: ...

  9. Java开发中的加密、解密、签名、验签,密钥,证书,这篇就够了,赶紧收藏起来

    OpenSSL和keytool 先说一下两个重要的工具 OpenSSL:OpenSSL整个软件包大概可以分成三个主要的功能部分:SSL协议库libssl.应用程序命令工具以及密码算法库libcrypt ...

最新文章

  1. Java互联网架构 百度云_java互联网架构师
  2. Ural 1025 Democracy in Danger 解题报告
  3. 第三节 循环链表的Go语言实现
  4. Error while adding the mapper ‘interface *****类‘ to configuration报错原因
  5. android 事件传递
  6. socket 编程入门教程(一)TCP server 端:5、创建监听嵌套字
  7. php url参数时间戳,AJAX GET 请求 URL 最后面缀的那个类似于时间戳的参数是什么啊?...
  8. mysql5.6.20开启慢查询日志以及创建索引优化慢查询
  9. OPEN(SAP) UI5 学习入门系列之四:更好的入门系列-官方Walkthrough
  10. matlab 时频分析(短时傅里叶变换、STFT)
  11. 高精度地图技术与展望
  12. C4:Unity3D制作智能家居设计软件——导入户型图(临摹图)
  13. CTBS客户机连接服务器提示错误的解决方法
  14. 【竖排日语OCR识别】如何识别图片上竖排的日语 ?如何识别图片上横排的日语?如何将竖排日语转横排日语,下面说清楚方法
  15. 无线流媒体网关改变视频会议室
  16. CryptoNight
  17. kali默认密码toor/kali
  18. 测试中遇到不可重现的Bug处理办法
  19. 社区计算机义务维修策划书,义务维修电脑策划书.doc
  20. 计算机命中率的概念,命中率

热门文章

  1. 与Min_25筛有关的一些模板
  2. HDU 4059 The Boss on Mars (容斥)(2011 Asia Dalian Regional Contest)
  3. 上海理工大学第二届“联想杯”全国程序设计邀请赛 Identical Day 思维 + 暴力
  4. 2021银川Problem D. Farm(不保证正确性)
  5. P4720 【模板】扩展卢卡斯定理/exLucas(无讲解,纯记录模板)
  6. 2020牛客国庆集训派对day4 Digits Are Not Just Characters
  7. YBTOJ洛谷P2042:维护数列(平衡树)
  8. P4640-[BJWC2008]王之财宝【OGF,Lucas定理】
  9. P6640-[BJOI2020]封印【SAM,二分】
  10. nssl1452-排行榜【数论】