- 浏览: 938479 次
- 性别:
- 来自: 重庆
文章分类
- 全部博客 (453)
- Windows phone 7 (0)
- Andriod (47)
- iPhone (1)
- Web (30)
- J2EE (34)
- stucts 2学习笔记 (34)
- 开发项目 (3)
- spring学习笔记 (24)
- EJB学习笔记 (6)
- Hibernate学习笔记 (15)
- JPA学习笔记 (8)
- Jsp (11)
- ajax (7)
- 异常收集模块 (1)
- jquery (2)
- phoneGap (2)
- jquery Mobile (0)
- java面试总结 (5)
- Object-C (0)
- javascript (6)
- Eclipse (5)
- 支付集成 (2)
- Weblogic (1)
- Dubbox (5)
- Redis (10)
- linux (21)
- Codis (2)
- React Native (0)
- Mysql (6)
- Docker (3)
- 自动化部署 (1)
- 项目Bug管理平台 (2)
- 负载均衡 (1)
- Mycat (2)
- Java基础知识 (16)
- 数据库 (7)
- Maven (17)
- Kafka (21)
- logs (2)
- 大并发 (2)
- 消息中间件 (2)
- 分布式锁 (3)
- 算法 (4)
- 数字证书原理,公钥私钥 (0)
- 数字证书原理 (1)
- 公钥私钥 (1)
- zookeeper (4)
- Hbase (9)
- Hadoop (2)
- storm (2)
- 通信协议 (1)
- Hive (3)
- git (1)
- JVM (2)
- 大数据相关算法 (1)
- idea (5)
- 将博客搬至CSDN (1)
- 设计模式 (2)
- 表达式 (1)
- 代码审查工具 (0)
- 开源项目 (1)
- PyCharm (0)
- python (6)
- Kubernetes (1)
- swagger (1)
- Maven中mirrors和repository的关系 (0)
- RabbitMQ (3)
- redisson (1)
- k8s (2)
- Mac (1)
最新评论
-
misisipi101:
假设库已经分为32个,那么要扩展到64个,怎样做呢
订单分库分表实践总结以及关键步骤 -
mfkxk298:
简单明了的例子,解决了问题,谢谢啦!
关于ListView中notifyDataSetChanged()刷新数据不更新原因 -
whbwang:
" target="_blank" ...
java web开发 高并发处理 -
suguoqian:
...
java web开发 高并发处理 -
xiangnanyujing:
Dubbox+Redis3.0+Spring+Hibernate+zookeeper实现消息推送核心搭建
package net.sf.andhsli.hotspotlogin;
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* Usage:
* <pre>
* String crypto = SimpleCrypto.encrypt(masterpassword, cleartext)
* ...
* String cleartext = SimpleCrypto.decrypt(masterpassword, crypto)
* </pre>
* @author ferenc.hechler
*/
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));
}
}
import java.security.SecureRandom;
import javax.crypto.Cipher;
import javax.crypto.KeyGenerator;
import javax.crypto.SecretKey;
import javax.crypto.spec.SecretKeySpec;
/**
* Usage:
* <pre>
* String crypto = SimpleCrypto.encrypt(masterpassword, cleartext)
* ...
* String cleartext = SimpleCrypto.decrypt(masterpassword, crypto)
* </pre>
* @author ferenc.hechler
*/
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));
}
}
发表评论
-
App开发一些总结
2016-04-05 17:48 2598架构因人而异,不同的架构师大多会有不同的看法;架构也因项目 ... -
java 实现微信搜索附近人功能
2015-03-25 18:07 4931最近给andorid做后台查询数据功能,有一个需求是模仿微信 ... -
重庆APP开发 重庆Android 重庆Ios 爬虫科技 重庆爬虫科技
2014-10-06 12:03 9<!--[if gte mso 9]><x ... -
android 操作文件
2012-08-30 11:15 1051package com.liyong; import jav ... -
android获取短信内容
2012-08-29 23:10 1560自己研究: package com.liyong.data; ... -
Android中的日历操作
2012-08-29 13:01 3021日历的操作方法,这里主要用到了ContentProiver的知 ... -
android获取CMNET、WIFI、CMWAP联网状态
2012-08-29 12:40 5867private static final int CMNET= ... -
android实现手势缩放、移动图片
2012-08-28 19:37 9287新建一个触摸监听器类 package com.liyong. ... -
怎样把信息绘制到图片中并且保存到本地硬盘上
2012-08-27 12:53 1378自己研究吧。。。 //解释一下由于我们不是绘制到手机屏幕上所 ... -
关于ListView中notifyDataSetChanged()刷新数据不更新原因
2012-08-26 21:41 50333使用Listview的时候: 当要动态显示更改后的数据(例如数 ... -
android中获取联系人相关信息
2012-08-26 18:42 1687自己看........... public static ... -
修改Android中strings.xml文件, 动态改变数据
2012-08-24 18:25 10854有些朋友可能会动态的修改Android中strings.xml ... -
android内存泄漏
2012-07-25 21:04 1713尽量不要使用setImageBitmap或setImageRe ... -
将程序安装到SD卡
2012-04-28 22:11 886Android 2.2系统的一大改进就是通过Move to S ... -
获取手机位置
2012-04-28 22:11 1010private double[] getGPS() { Lo ... -
获取手机位置
2012-05-04 09:39 1106private double[] getGPS() { Lo ... -
查看内存存储
2012-05-03 10:05 1097import java.io.File; import a ... -
获取本机电话号码
2012-05-03 10:04 1118private String getMyPhoneNumber ... -
发送彩信
2012-05-03 10:04 1013Uri uri = Uri.parse(\"cont ... -
发送彩信
2012-05-02 09:26 853Uri uri = Uri.parse(\"cont ...
相关推荐
这个压缩包文件中的"加密解密字符串的例子"很可能是提供了一个关于如何在编程中实现字符串加密和解密的示例。接下来,我们将深入探讨加密解密的基础知识以及可能涉及的技术。 1. 加密解密原理: 加密是将明文(可...
对于初学者,这个项目提供了一个很好的DEs加密解密实践案例,可以学习如何在C++中调用加密库,理解加密解密的基本流程,以及如何在VS2017环境下构建和运行程序。 8. **安全性考虑**: 虽然DES在历史上被广泛使用...
总的来说,这个C#版的字符串DES加密解密工具源码是一个很好的学习资源,可以帮助开发者深入理解加密和解密的原理,以及如何在实际项目中应用这些技术。在实际开发中,结合最新的加密标准和最佳实践,可以确保数据的...
总之,这套"简单实用的字符串加密解密Demo"是一个很好的学习和实践平台,它可以帮助开发者了解加密解密的基本概念,同时提供了一种在实际项目中快速实现数据加密的途径。不过,对于专业级别的数据安全,还需要结合更...
本资源提供了一个名为"字符串加密工具Encrypt String.exe"的应用程序,可以用于实践和学习字符串加密解密的技术。 字符串加密通常分为对称加密和非对称加密两种主要类型。对称加密算法使用同一个密钥进行加密和解密...
AES 加密的代码网上有很多,但是90%都只能对 16位字符串进行加密,经过两天的研究,修改完善了这个 可以对任意字符长度的字符串进行加密的VC++源代码,这个是本人努力的成果,像大家收点费用,希望谅解。 OK 制作 ...
在VB中实现加密解密字符串,通常会涉及到以下几个步骤: 1. 导入必要的加密库:VB可能需要导入如`Microsoft.CryptoAPI`这样的库来访问加密功能。 2. 选择合适的加密算法:根据需求选择合适的加密算法,例如AES,...
本项目“java_code.rar”聚焦于Java实现的字符串加密解密技术,旨在提供一个实用的解决方案来保护敏感信息。 首先,我们需要理解加密和解密的基本概念。加密是将明文(可读信息)转化为密文(不可读信息)的过程,...
总之,这个VB字符串加密解密软件及其源代码是一个很好的学习资源,不仅能够帮助你理解加密技术,还能加深对VB编程的理解。在探索过程中,你可能会遇到一些挑战,但克服它们将使你的技能更上一层楼。
"字符串加密解密jar包"是一个专门为处理字符串加密和解密任务而设计的Java应用程序集(jar包)。它允许用户对给定的字符串进行加密和解密操作,确保数据在存储或传输过程中的安全性。以下是对这个jar包及其相关知识...
在IT领域,字符串处理是一项基础且重要的技能,广泛应用于各种软件开发中,包括但不限于数据分析、密码学、文本解析等。...对于IT专业学生来说,这是一个很好的实践机会,能够加深对字符串处理、密码学以及编程的理解。
在"字符串加密解密Demo"中,很可能包含的是一个简单的加密解密程序示例,可能涉及上述的某些加密算法和方法。通过查看提供的压缩包文件,我们可以学习如何在实际代码中实现加密和解密功能,从而更好地理解这一过程。...
3. **窗体界面**:描述中提到的是一个Winform窗体版,这意味着源码会包含一个用户界面,用户可以输入字符串并触发加密和解密操作。窗体可能会包含文本框用于输入和显示字符串,按钮触发加密和解密过程,以及可能的...
总的来说,"tea_test.rar"文件中的内容可能是一个学习和测试TEA加密算法的好资源,对于理解加密算法的工作原理和实现有很高的价值。然而,为了保证数据安全,开发者应始终关注最新的加密技术和最佳实践,以应对日益...
这个头文件可能定义了一个类(例如`CryptString`),提供了加密和解密的方法,或者包含了一些静态函数来处理字符串的加密解密操作。 在C++中,实现字符串加密通常会用到以下几种方法: 1. **异或(XOR)加密**:这是...
"风吟PHP 字符串加密/解密.rar"这个压缩包文件显然包含了一种或多种用于加密和解密字符串的PHP实现。这种加密技术强调了“有密钥,很安全,没有密钥解不了”,这表明它可能采用了对称加密算法,如AES(高级加密标准...
在VB2005中,字符串加密和解密是安全编程的重要组成部分,它涉及到数据保护,尤其是当处理敏感信息时。本教程将深入探讨如何在VB2005环境中...提供的源代码是一个很好的起点,可以帮助初学者理解并掌握这些概念和技术。
这个压缩包提供的"加密/解密字符串的例子"是一个很好的学习资源,包含了源代码文件,可以帮助我们理解并实现基本的加密解密功能。 首先,`modCrypt.bas`是一个标准模块文件,它通常包含一系列的公共函数和子程序,...
综上所述,BASE64加密解密在Java开发中是一个实用的技术,它允许开发者轻松地在二进制数据和ASCII字符串之间转换,便于数据的网络传输和存储。同时,Java提供的`Base64`工具类提供了便捷的API来实现这一功能,简化了...