Android RSASHA加密
前言
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加密相关推荐
- Android安全加密:对称加密
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...
- Android安全加密:Https编程
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...
- Android安全加密:消息摘要Message Digest
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...
- Android安全加密:非对称加密
Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Digest Android安全加密:数字签名 ...
- android 对称加密和非对称加密,Android开发加密之对称与非对称加密算法使用案例.pdf...
Android开发加密之对称与非对称加密算法使用案例 消息摘要 md5:登录注册, sha1 对称加密 1.des:Data Encryption Standard,数据加密标准 2.aes: ...
- Android FDE 加密过程
Android Full Disk Encryption Settings中加密入口 调用关系 加密实现 参考 Vold properties init properties init actions ...
- Android RSA加密解密
转载: http://blog.csdn.net/bbld_/article/details/38777491 概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素 ...
- Android RSA 加密
没想到被Android里的RSA加密折腾了几个小时,主要还是自己对RSA加密的原理不了解,然后网上相关的资料也少. 使用AndroidUtilCode工具类中的EncryptUtils.encrypt ...
- 加密狗android,Android系统加密狗的设计与实现
摘要: 随着IT产业的迅猛发展,软件作为IT产业中的一项重要产品,现在已经随着电脑进入千家万户,深入到用户生活中的每个地方.但是针对软件,有一个问题一直存在,那就是软件盗版的问题.随着软件影响范围的扩 ...
- Android RSA加密解密,用于和服务器交互时的请求
概述 RSA是目前最有影响力的公钥加密算法,该算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困 难,因此可以将乘积公开作为加密密钥,即公钥,而两个大素数 ...
最新文章
- Bigtable:结构化数据的分布式存储系统
- 部署webservice到远程服务器
- 写给程序员的秘籍:你跟优秀程序员的差距,其实就在这几个方面!
- 在计算机网络中使用modem时它的功能是,在计算机网络中使用MODEM时,它的功能是____。...
- Javascript框架 - ExtJs - 类
- python udp 丢包_Python语言---TCP、UDP
- 2023年东南大学集成电路设计考研考情与难度、参考书及上岸前辈备考经验
- 微型计算机与巨型计算机相比,微型计算机的特点及应用
- java关闭端口_使用java代码关闭指定端口的程序-windows
- 《江山美人》:程小东的利落与编剧群的故步自封
- erp系统都有哪些品牌
- 竞业协议“下沉”,普通程序员逃不过的坑
- vue-quill-editor 富文本编辑器 自定义上传图片
- 慕课面板数据分析与Stata应用—第一章总结
- 面试必问——jvm原理及优化(包括GC)
- [翻译角]Headline English: A Captain Should Be Pitch Perfect at a Multitude of Skills (ESLPOD Blog)...
- 06--C# 数组与集合--1
- 身份证校验(//身份证号合法性验证 //支持15位和18位身份证号//支持地址编码、出生日期、校验位验证)
- c语言如何打印矩形图形的程序 五行七列,C语言程序计 第二讲.printf打印图形.转义字符.格式声明符.doc...
- 基于STM32编译程序,串口实现Hello windows!