前言

RSA允许你选择公钥的大小。512位的密钥被视为不安全的;768位的密钥不用担心受到除了国家安全管理(NSA)外的其他事物的危害;1024位的密钥几乎是安全的。RSA在一些主要产品内部都有嵌入,像 Windows、网景 Navigator、 Quicken和 Lotus Notes。

RSA公开密钥密码体制的原理是:根据数论,寻求两个大素数比较简单,而将它们的乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

RSA算法的具体描述如下:

(1)任意选取两个不同的大素数p和q计算乘积

(2)任意选取一个大整数e,满足

整数e用做加密钥(注意:e的选取是很容易的,例如,所有大于p和q的素数都可用);

(3)确定的解密钥d,满足

是一个任意的整数;所以,若知道e和

,则很容易计算出d;

(4)公开整数n和e,秘密保存d;

(5)将明文m(m<n是一个整数)加密成密文c,加密算法为

(6)将密文c解密为明文m,解密算法为

然而只根据n和e(注意:不是p和q)要计算出d是不可能的。因此,任何人都可对明文进行加密,但只有授权用户(知道d)才可对密文解密 。

1.在线加密解密

https://www.bejson.com/enc/rsa/

https://www.bejson.com/enc/sha/

2.RSA加密

RSA加密需要密钥,具体密钥字符串需要自己定义

public static String getRSAPublidKeyBybase64(String KEY, String text) {Cipher cipher;try {cipher = Cipher.getInstance("RSA/ECB/PKCS1Padding");//Android上使用byte[] publicBytes = Base64.decode(KEY.getBytes(StandardCharsets.UTF_8), Base64.DEFAULT);X509EncodedKeySpec keySpec = new X509EncodedKeySpec(publicBytes);KeyFactory keyFactory = KeyFactory.getInstance("RSA");PublicKey pubKey = keyFactory.generatePublic(keySpec);cipher.init(Cipher.ENCRYPT_MODE, pubKey);byte[] encryptedBytes = cipher.doFinal(text.getBytes(StandardCharsets.UTF_8));return Base64.encodeToString(encryptedBytes, Base64.DEFAULT);} catch (NoSuchAlgorithmException | NoSuchPaddingException |InvalidKeyException | BadPaddingException | IllegalBlockSizeException |InvalidKeySpecException e) {e.printStackTrace();}return "";
}

3.SHA加密

SHA加密类型

输入加密类型时:SHA-512

/*** SHA加密* @param strText 待加密的字符串* @param strType 加密类型* @return 加密后的字符串*/
public static String SHA(final String strText, final String strType) {// 返回值String strResult = null;// 是否是有效字符串if (strText != null && strText.length() > 0) {try {// SHA 加密开始// 创建加密对象 并傳入加密類型MessageDigest messageDigest = MessageDigest.getInstance(strType);// 传入要加密的字符串messageDigest.update(strText.getBytes());// 得到 byte 類型结果byte[] byteBuffer = messageDigest.digest();// 將 byte 轉換爲 stringStringBuilder strHexString = new StringBuilder();// 遍歷 byte bufferfor (byte b : byteBuffer) {String hex = Integer.toHexString(0xff & b);if (hex.length() == 1) {strHexString.append('0');}strHexString.append(hex);}// 得到返回結果strResult = strHexString.toString();} catch (NoSuchAlgorithmException e) {e.printStackTrace();}}return strResult;
}

Android RSASHA加密相关推荐

  1. Android安全加密:对称加密

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  2. Android安全加密:Https编程

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  3. Android安全加密:消息摘要Message Digest

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  4. Android安全加密:非对称加密

    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...

  5. android 对称加密和非对称加密,Android开发加密之对称与非对称加密算法使用案例.pdf...

    Android开发加密之对称与非对称加密算法使用案例 消息摘要 md5:登录注册, sha1 对称加密  1.des:Data Encryption Standard,数据加密标准  2.aes: ...

  6. Android FDE 加密过程

    Android Full Disk Encryption Settings中加密入口 调用关系 加密实现 参考 Vold properties init properties init actions ...

  7. Android RSA加密解密

    转载: http://blog.csdn.net/bbld_/article/details/38777491 概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素 ...

  8. Android RSA 加密

    没想到被Android里的RSA加密折腾了几个小时,主要还是自己对RSA加密的原理不了解,然后网上相关的资料也少. 使用AndroidUtilCode工具类中的EncryptUtils.encrypt ...

  9. 加密狗android,Android系统加密狗的设计与实现

    摘要: 随着IT产业的迅猛发展,软件作为IT产业中的一项重要产品,现在已经随着电脑进入千家万户,深入到用户生活中的每个地方.但是针对软件,有一个问题一直存在,那就是软件盗版的问题.随着软件影响范围的扩 ...

  10. Android RSA加密解密,用于和服务器交互时的请求

    概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困 难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数 ...

最新文章

  1. Bigtable:结构化数据的分布式存储系统
  2. 部署webservice到远程服务器
  3. 写给程序员的秘籍:你跟优秀程序员的差距,其实就在这几个方面!
  4. 在计算机网络中使用modem时它的功能是,在计算机网络中使用MODEM时,它的功能是____。...
  5. Javascript框架 - ExtJs - 类
  6. python udp 丢包_Python语言---TCP、UDP
  7. 2023年东南大学集成电路设计考研考情与难度、参考书及上岸前辈备考经验
  8. 微型计算机与巨型计算机相比,微型计算机的特点及应用
  9. java关闭端口_使用java代码关闭指定端口的程序-windows
  10. 《江山美人》:程小东的利落与编剧群的故步自封
  11. erp系统都有哪些品牌
  12. 竞业协议“下沉”,普通程序员逃不过的坑
  13. vue-quill-editor 富文本编辑器 自定义上传图片
  14. 慕课面板数据分析与Stata应用—第一章总结
  15. 面试必问——jvm原理及优化(包括GC)
  16. [翻译角]Headline English: A Captain Should Be Pitch Perfect at a Multitude of Skills (ESLPOD Blog)...
  17. 06--C# 数组与集合--1
  18. 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)
  19. c语言如何打印矩形图形的程序 五行七列,C语言程序计 第二讲.printf打印图形.转义字符.格式声明符.doc...
  20. 基于STM32编译程序,串口实现Hello windows!

热门文章

  1. 如何看懂公司的财务报表(2)
  2. 南大计算机专业课表,南京大学计算机科学与技术系2019-2020学年第一学期仙林校区.PDF...
  3. Snagit 2019 快速截图
  4. CC2430DMA学习
  5. Endnote常见错误
  6. 计算机公式算乘法,excel表格乘法计算公式的用法
  7. html中表格table冻结行和列
  8. 如何在Excel中隐藏单元格,行和列
  9. JS 验证身份证及获取地区
  10. 南无阿弥陀佛是什么意思呢