返回顶部
首页 > 资讯 > 移动开发 >Android 加密解密字符串详解
  • 387
分享到

Android 加密解密字符串详解

加密字符串加密解密字符Android 2022-06-06 10:06:16 387人浏览 薄情痞子
摘要

加密和解密的字符串: 代码如下:package eoe.demo; import java.security.SecureRandom; import javax.crypto

加密和解密的字符串:
代码如下:
package eoe.demo;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecreTKEy;
import javax.crypto.spec.SecretKeySpec;

public class SimpleCrypto {
public static String encrypt(String seed, String cleartext) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] result = encrypt(rawKey, cleartext.getBytes());
return toHex(result);
}
public static String decrypt(String seed, String encrypted) throws Exception {
byte[] rawKey = getRawKey(seed.getBytes());
byte[] enc = toByte(encrypted);
byte[] result = decrypt(rawKey, enc);
return new String(result);
}
private static byte[] getRawKey(byte[] seed) throws Exception {
KeyGenerator kgen = KeyGenerator.getInstance("AES");
SecureRandom sr = SecureRandom.getInstance("SHA1PRNG");
sr.setSeed(seed);
kgen.init(128, sr); // 192 and 256 bits may not be available
SecretKey skey = kgen.generateKey();
byte[] raw = skey.getEncoded();
return raw;
}
private static byte[] encrypt(byte[] raw, byte[] clear) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.ENCRYPT_MODE, skeySpec);
byte[] encrypted = cipher.doFinal(clear);
return encrypted;
}
private static byte[] decrypt(byte[] raw, byte[] encrypted) throws Exception {
SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
Cipher cipher = Cipher.getInstance("AES");
cipher.init(Cipher.DECRYPT_MODE, skeySpec);
byte[] decrypted = cipher.doFinal(encrypted);
return decrypted;
}
public static String toHex(String txt) {
return toHex(txt.getBytes());
}
public static String fromHex(String hex) {
return new String(toByte(hex));
}
public static byte[] toByte(String hexString) {
int len = hexString.length()/2;
byte[] result = new byte[len];
for (int i = 0; i < len; i++)
result[i] = Integer.valueOf(hexString.substring(2*i, 2*i+2), 16).byteValue();
return result;
}
public static String toHex(byte[] buf) {
if (buf == null)
return "";
StringBuffer result = new StringBuffer(2*buf.length);
for (int i = 0; i < buf.length; i++) {
appendHex(result, buf[i]);
}
return result.toString();
}
private final static String HEX = "0123456789ABCDEF";
private static void appendHex(StringBuffer sb, byte b) {
sb.append(HEX.charAt((b>>4)&0x0f)).append(HEX.charAt(b&0x0f));
}
}

您可能感兴趣的文章:Android字符串和十六进制相互转化出现的中文乱码问题Android中判断字符串中必须包含字母或者数字TextVie获取显示字符串的宽度之Android开发Android获取手机屏幕宽高、状态栏高度以及字符串宽高信息的方法android开发教程之framework增加字符串资源和图片等resource资源Android字符串转Ascii码实例代码Android字符串资源文件fORMat方法使用实例Android TextView字体颜色设置方法小结Android编程实现TextView字体颜色设置的方法小结Android 字符串中某个字段可点击和设置颜色的方法


--结束END--

本文标题: Android 加密解密字符串详解

本文链接: https://lsjlt.com/news/27520.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Android 加密解密字符串详解
    加密和解密的字符串: 代码如下:package eoe.demo; import java.security.SecureRandom; import javax.crypto...
    99+
    2022-06-06
    加密 字符串 加密解密 字符 Android
  • python字符串加密与解密
    符串进行加密与解密 设计应用程序时,为了防止一些敏感信息的泄露,通常需要对这些信息进行加密。 以用户的登录密码为例,如果密码以明文的形式存储在数据表中,很容易就会被人发现;相反,如果密码以密文的形式储存,即使别人从数据表中...
    99+
    2023-01-31
    字符串 python
  • Java对字符串进行加密解密
    要求:   *  对用户输入的每个字符的值进行加密,将解密后的字符串输出   *  对用户输入的已加密字符串进行解密并输出实现代码:import java.util.Scanner;public class E...
    99+
    2023-05-31
    java 字符串 加密解密
  • VB.NET中怎么实现字符串加密解密
    这篇文章给大家介绍VB.NET中怎么实现字符串加密解密,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。VB.NET字符串加密解密的安全说明: 与 DES 相比,Rijndael(现在称为“高级加密标准”[AES])和“三...
    99+
    2023-06-17
  • mysql加密字符串怎么破解
    mysql字符串加密的方法有TO_BASE64、 ENCODE、AES_ENCRYPT三种,使用方法如下:SET @str0 = 'abcdefg';SET @str1 = TO_BASE64(@str0);SET @str2 = ENCO...
    99+
    2024-04-02
  • python字符串加密解密的方法是什么
    Python中字符串加密解密的方法有很多种,常见的有以下几种:1. 替换法:将字符串中的每个字符按照事先定义好的规则进行替换,实现加...
    99+
    2023-09-04
    python
  • Linux下实现 OpenSSL 简单加密与解密字符串
    场景shell脚本中存在明文密码客户要求禁止使用明文密码,密码做加密处理.方案在网上了解到了Linux OpenSSL加密解密工具可以指定各种加密算法为字符,文件做加密处理.加密的案例比较多,解密的寥寥无几.有兴趣的可以去查下中文...
    99+
    2023-06-05
  • python对字符串加密解密的方法是什么
    Python中常用的字符串加密解密方法有以下几种:1. 使用base64模块进行加密解密:- 加密:使用`base64.b64enc...
    99+
    2023-08-24
    python
  • Python实现对字符串的加密解密方法示例
    本文实例讲述了Python实现对字符串的加密解密方法。分享给大家供大家参考,具体如下: 需求是是要将密码存在数据库里,所以要加密解密是可逆的,在数据库里不要有特殊字符,防止数据库备份和恢复中出错。 安装Py...
    99+
    2022-06-04
    示例 字符串 加密解密
  • Android数据加密之Des加密详解
    Android DES加密的相关实现,简单的实现了一下,今天来总结一下: DES加密介绍: DES是一种对称加密算法,所谓对称加密算法即:加密和解密使用相同密钥的算法。DES...
    99+
    2022-06-06
    加密 des加密 des Android
  • Android 安全加密:对称加密详解
    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Diges...
    99+
    2022-06-06
    加密 Android
  • Android 安全加密:非对称加密详解
    Android安全加密专题文章索引 Android安全加密:对称加密 Android安全加密:非对称加密 Android安全加密:消息摘要Message Diges...
    99+
    2022-06-06
    加密 非对称加密 Android
  • 基于Java解决华为机试之字符串加解密
    目录1.简述2.示例12.代码实现1.简述 描述: 1、对输入的字符串进行加解密,并输出。2、加密方法为: 当内容是英文字母时则用该英文字母的后一个字母替换,同时字母变换大小写,如字...
    99+
    2024-04-02
  • 详解Java 加密解密和数字签名问题
    在做项目中,只要涉及敏感信息,或者对安全有一定要求的场景,都需要对数据进行加密。在Java中原生API即可实现对称加密与非对称加密,并支持常用的加密算法。 对称加密 对称加密使用单钥...
    99+
    2024-04-02
  • 详解vue的Des加密解密
    目录1.安装2.写工具类3.在需要的地方引用4.调用5.VUE的方式1.安装 npm install crypto-js@3.3.0 --save-dev 这样是安装固定版本3.3...
    99+
    2024-04-02
  • Android Room数据库加密详解
    本文实例为大家分享了Android Room之数据库加密的具体实现,供大家参考,具体内容如下 一、需求背景 Android平台自带的SQLite有一个致命的缺陷:不支持加密。这就导致...
    99+
    2024-04-02
  • C#实现简单的字符串加密
    最近用到一些字符串加密,而.net中提供的加密算法中用起来比较复杂,便简单的封装了一下,方便日后使用。 public class Encrypt { ...
    99+
    2024-04-02
  • Java 实现字符串SHA1加密方法
    目录Java 字符串SHA1加密导入类定义函数javaSHA1实现加密解密封装一个方法用于加密主函数测试Java 字符串SHA1加密 导入类 import java.securi...
    99+
    2024-04-02
  • C#实现加密与解密详解
    目录一、Hash加密,使用HashAlgorithm哈希算法类的派生类(MD5、SHA1等)1、使用抽象类HashAlgorithm2、使用抽象类MD53、使用MD5CryptoSe...
    99+
    2024-04-02
  • JavaScript实现加密与解密详解
    目前原生JS貌似并没有提供MD5计算相关的函数方法,只能自己实现或者使用前辈大神写好的。 一、使用crypto.js库进行加密 GitHub的 https://github...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作