首页编程java编程java 按位加密 的是什么?java项目如何加密

java 按位加密 的是什么?java项目如何加密

编程之家2023-10-1197次浏览

今天给各位分享java 按位加密 的是什么的知识,其中也会对java项目如何加密进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

java 按位加密 的是什么?java项目如何加密

java cipher

java cipher是什么,让我们一起了解一下?

cipher是在javax.crypto包下,构成了Java Cryptographic Extension(JCE)框架的核心,Java的Cipher类提供了加密和解密的功能。

java 按位加密 的是什么?java项目如何加密

我们都知道,Cipher类是一个引擎类,它需要通过getInstance()工厂方法来实例化对象。那么该如何操作?

java 按位加密 的是什么?java项目如何加密

1、我们可以通过指定转换模式的方式获得实例化对象,方法如下所示:

//返回实现指定转换的 Cipher对象

public static Cipher getInstance(String transformation)

2、也可以在制定转换模式的同时制定该转换模式的提供者,方法如下所示:

//返回实现指定转换的 Cipher对象

public static Cipher getInstance(String transformation, Provider provider)

//返回实现指定转换的 Cipher对象

public static Cipher getInstance(String transformation, String provider) 

注意这里的参数String transformation,通过如下代码示例:

Cipher c = Cipher.getInstance("DES");

上述实例化操作是一种最为简单的实现,并没有考虑DES分组算法的工作模式和填充模式,可通过以下方式对其设定:

Cipher c = Cipher.getInstance("DES/CBC/PKCS5Padding");

参数String transformation的格式是“算法/工作模式/填充模式”,不同的算法支持不同的工作模式以及填充模式。

另外,Java的Cipher类还提供了加密和解密的功能,那么JAVA是如何通过Cipher实现加密与解密的?

实战操作:具体代码如下 package com.bsd.yx; import java.security.Key; import java.security.Security; import java.text.SimpleDateFormat; import java.util.Date; import javax.crypto.Cipher; import com.ibm.model.cxf.Safety;/** * 加密与解密 * @author tanf * @date 2013-11-08 */ public class EncryptionDecryption {/*** 默认密钥*/ private static String strDefaultKey = "tandaly201124335";/** 加密工具 */ private static Cipher encryptCipher = null;/** 解密工具 */ private static Cipher decryptCipher = null;/*** 将byte数组转换为表示16进制值的字符串, 如:byte[]{8,18}转换为:0813, 和public static byte[]* hexStr2ByteArr(String strIn) 互为可逆的转换过程* * @param arrB*            需要转换的byte数组* @return 转换后的字符串* @throws Exception* */ public static String byteArr2HexStr(byte[] arrB) throws Exception { int iLen = arrB.length;// 每个byte用两个字符才能表示,所以字符串的长度是数组长度的两倍 StringBuffer sb = new StringBuffer(iLen * 2); for (int i = 0; i 

java项目如何加密

Java基本的单向加密算法:

1.BASE64严格地说,属于编码格式,而非加密算法

2.MD5(Message Digest algorithm 5,信息摘要算法)

3.SHA(Secure Hash Algorithm,安全散列算法)

4.HMAC(Hash Message Authentication Code,散列消息鉴别码)

按照RFC2045的定义,Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.)

常见于邮件、http加密,截取http信息,你就会发现登录操作的用户名、密码字段通过BASE64加密的。

主要就是BASE64Encoder、BASE64Decoder两个类,我们只需要知道使用对应的方法即可。另,BASE加密后产生的字节位数是8的倍数,如果不够位数以=符号填充。

MD5

MD5-- message-digest algorithm 5(信息-摘要算法)缩写,广泛用于加密和解密技术,常用于文件校验。校验?不管文件多大,经过MD5后都能生成唯一的MD5值。好比现在的ISO校验,都是MD5校验。怎么用?当然是把ISO经过MD5后产生MD5的值。一般下载linux-ISO的朋友都见过下载链接旁边放着MD5的串。就是用来验证文件是否一致的。

HMAC

HMAC(Hash Message Authentication Code,散列消息鉴别码,基于密钥的Hash算法的认证协议。消息鉴别码实现鉴别的原理是,用公开函数和密钥产生一个固定长度的值作为认证标识,用这个标识鉴别消息的完整性。使用一个密钥生成一个固定大小的小数据块,即MAC,并将其加入到消息中,然后传输。接收方利用与发送方共享的密钥进行鉴别认证等。

java加密的几种方式

基本的单向加密算法:

BASE64严格地说,属于编码格式,而非加密算法

MD5(Message Digest algorithm 5,信息摘要算法)

SHA(Secure Hash Algorithm,安全散列算法)

HMAC(Hash Message Authentication Code,散列消息鉴别码)

复杂的对称加密(DES、PBE)、非对称加密算法:

DES(Data Encryption Standard,数据加密算法)

PBE(Password-based encryption,基于密码验证)

RSA(算法的名字以发明者的名字命名:Ron Rivest, AdiShamir和Leonard Adleman)

DH(Diffie-Hellman算法,密钥一致协议)

DSA(Digital Signature Algorithm,数字签名)

ECC(Elliptic Curves Cryptography,椭圆曲线密码编码学)

代码参考:

/**

*BASE64加密

*

*@paramkey

*@return

*@throwsException

*/

publicstaticStringencryptBASE64(byte[]key)throwsException{

return(newBASE64Encoder()).encodeBuffer(key);

}

/**

*MD5加密

*

*@paramdata

*@return

*@throwsException

*/

publicstaticbyte[]encryptMD5(byte[]data)throwsException{

MessageDigestmd5=MessageDigest.getInstance(KEY_MD5);

md5.update(data);

returnmd5.digest();

}

/**

*SHA加密

*

*@paramdata

*@return

*@throwsException

*/

publicstaticbyte[]encryptSHA(byte[]data)throwsException{

MessageDigestsha=MessageDigest.getInstance(KEY_SHA);

sha.update(data);

returnsha.digest();

}

}

/**

*初始化HMAC密钥

*

*@return

*@throwsException

*/

publicstaticStringinitMacKey()throwsException{

KeyGeneratorkeyGenerator=KeyGenerator.getInstance(KEY_MAC);

SecretKeysecretKey=keyGenerator.generateKey();

returnencryptBASE64(secretKey.getEncoded());

}

/**

*HMAC加密

*

*@paramdata

*@paramkey

*@return

*@throwsException

*/

publicstaticbyte[]encryptHMAC(byte[]data,Stringkey)throwsException{

SecretKeysecretKey=newSecretKeySpec(decryptBASE64(key),KEY_MAC);

Macmac=Mac.getInstance(secretKey.getAlgorithm());

mac.init(secretKey);

returnmac.doFinal(data);

}

关于java 按位加密 的是什么到此分享完毕,希望能帮助到您。

java导入快捷键是什么?java的一些快捷键java冒泡是什么 什么是冒泡程序啊