用户登录
用户注册

分享至

javapasswordencoder

  • 作者: 陪她i
  • 来源: 51数据库
  • 2020-06-05

1.Java密码扩展的基础是什么

Java密码扩展(The Java Cryptography Extension),是JDK1。

4的一个重要部分,基本上,他是由一些包构成的,这些包形成了一个框架并实现了一些加密,密钥生成算法和协议,消息认证码等算法,这篇文章将想你介绍JCE的安装和使用。 值得注意的是,尽管JCE是JDK1。

4的核心包的一部分,我们将首先用JDK1。2及高一点的版本向你演示一下如果安装配置JCE(静态安装)。

稍后,将向你介绍如何在不安装的情况下使用JCE(动态安装)。最后,将演示怎么生成密钥和密码,及如果进行基本的加密。

解密。提供者是什么? 提供者是特定加密算法的实现者,有的提供者(提供的加密技术)是免费的,有的不免费,IBM, Bouncy Castle, 和 RSA都是一些(加密)提供者。

在本文的后面,我们将考察一下来自Bouncy Castle的RSA算法。 Sun 也向大家说明了如果实现自己的提供者(需要符合jDK的一些约定)。

静态安装 在安装和使用JCE之前,你需要从 Sun Web site(这里是以暗中sun的提供者为例)。获得他的安装包,JCE有sun他自己的安全提供者-sunJCE,为了吧sunJCE静态的安装到默认的提供者列表中,你需要修改安全属性文件:? \jre\lib\security\java。

security (Win32) ? /jre/lib/security/java。security (UNIX)如果你把JDK安装在C:\jdk1。

3,你需要编辑以下文件:C:\jdk1。3\jre\lib\security\java。

security 为了安装SunJCE,你需要在以上文件中加入:security。 provider。

n=com。sun。

crypto。provider。

SunJCE把n用你加入的提供者的优先级代替(注意:序号要保持递增,不能跳过,但可以调整前后顺序)。Listing A 用于查看你安装过的提供者的信息,结果在Listing B中列出,显示提供者的能力,比如说可用的加密算法。

Listing A: ProviderInformation。javaimport java。

security。Provider;import java。

security。Security;import java。

util。Set;import java。

util。Iterator;public class ProviderInformation { public static void main(String[] args) { Provider[] providers = Security。

getProviders(); for (int i = 0; i getName()); System。out。

println("Provider information: " + provider。getInfo()); System。

out。println("Provider version: " + provider。

getVersion()); Set entries = provider。entrySet(); Iterator iterator = entries。

iterator(); while (iterator。hasNext()) { System。

out。println("Property entry: " + iterator。

next()); } } }}。

2.org.acegisecurity.providers.encoding.md5passwordencoder 属于哪个jar

样例:

import java.io.IOException;

import java.security.MessageDigest;

import java.security.NoSuchAlgorithmException;

public class Test {

public static void main(String[] args) throws IOException{

String plainText = "asdf";

try {

MessageDigest md = MessageDigest.getInstance("MD5");

md.update(plainText.getBytes());

byte b[] = md.digest();

int i;

StringBuffer buf = new StringBuffer("");

for (int offset = 0; offset

3.JAVA 中getpassword方法

我查了下API。

jdk1.5中有getPassword方法.

getPassword() 返回此 TextComponent 中所包含的文本。

getPassword

public char[] getPassword()返回此 TextComponent 中所包含的文本。如果基础文档为 null,则将给出 NullPointerException。为了取得较高的安全性,建议将每个字符设置为零以便在使用后清除返回的字符数组。

返回:文本

你可以查看API文档,上面说getText() 已过时。 从 Java 2 platform v1.2 开始,由 getPassword 来代替。

至于楼主所说的改成getPassword ()后就验证错误了,我想是因为返回值的原因。

可以这样做

String password= new String(jT_password.getPassword());

if ((jT_username.getText().equals(user))&& (password.equals(pwd))) {

System.out.println("success");

}

4.求Java的MD5加密解密实现类

import java.security.*;

import java.util.logging.Level;

import java.util.logging.Logger;

public class md5{

public String md5(String str) {

String s=str;

if(s==null){

return "";

}else{

String value = null;

MessageDigest md5 = null;

try {

md5 = MessageDigest.getInstance("MD5");

}catch (NoSuchAlgorithmException ex) {

Logger.getLogger(md5.class.getName()).log(Level.SEVERE, null, ex);

}

sun.misc.BASE64Encoder baseEncoder = new sun.misc.BASE64Encoder();

try {

value = baseEncoder.encode(md5.digest(s.getBytes("utf-8")));

} catch (Exception ex) {

}

return value;

}

}

}

5.Java 写一个输入密码的小程序

已完成,复制粘贴即可。

import java.util.Scanner; public class YuGiOh { private static void checkPass ( String password ) { String regp = ".*[A-Z].*"; String rego = ".*[a-z].*"; String regq = ".*\\d.*"; String regs = ".*[\\`\\-\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\_\\+\\=\\[\\{\\}\\]\\;\\:\\,\\.\\<\\>\\/\\?].*"; String regex = "^[a-zA-Z\\d\\`\\-\\!\\@\\#\\$\\%\\^\\&\\*\\(\\)\\_\\+\\=\\[\\{\\}\\]\\;\\:\\,\\.\\<\\>\\/\\?]{6,}$"; String result = ""; if (password.length () < 6)="" {="" result="" +="\t\t-contain at least six characters. Your password is only " +="" password.length="" ()="" +="" "="" characters="" long.\n";="" }="" if="" (!password.matches="" (regp))="" {="" result="" +="\t\t-contain at least one uppercase letter.\n" ;="" }="" if="" (!password.matches="" (rego))="" {="" result="" +="\t\t-contain at least one lowercase letter.\n" ;="" }="" if="" (!password.matches="" (regq))="" {="" result="" +="\t\t-contain at least one number.\n" ;="" }="" if="" (!password.matches="" (regs))="" {="" result="" +="\t\t-contain at least one of the following special characters: `!@#$%^&*()_+=[{}];:,.<>/?\n" ;="" }="" else="" if="" (!password.matches="" (regex))="" {="" result="" +="\t\t-not contain an invalid character. The valid special characters: `!@#$%^&*()_+=[{}];:,.<>/?\n" ;="" }="" if="" (!"".equals="" (result))="" {="" system.out.println="" ("your="" password="" must:\n"="" +="" result);="" }="" else="" {="" system.out.println="" ("your="" valid="" password="" is:="" "="" +="" password);="" }="" system.out.println="" ();="" }="" public="" static="" void="" main="" (="" string[]="" args="" )="" {="" scanner="" scanner="new" scanner="" (system.in);="" while="" (true)="" {="" system.out.print="" ("enter="" a="" valid="" password:="" ");="" string="" password="scanner.nextLine" ();="" checkpass="" (password);="" }="" }="">

6.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加密 * * @param key * @return * @throws Exception */ public static String encryptBASE64(byte[] key) throws Exception { return (new BASE64Encoder()).encodeBuffer(key); } /** * MD5加密 * * @param data * @return * @throws Exception */ public static byte[] encryptMD5(byte[] data) throws Exception { MessageDigest md5 = MessageDigest.getInstance(KEY_MD5); md5.update(data); return md5.digest(); } /** * SHA加密 * * @param data * @return * @throws Exception */ public static byte[] encryptSHA(byte[] data) throws Exception { MessageDigest sha = MessageDigest.getInstance(KEY_SHA); sha.update(data); return sha.digest(); } } /** * 初始化HMAC密钥 * * @return * @throws Exception */ public static String initMacKey() throws Exception { KeyGenerator keyGenerator = KeyGenerator.getInstance(KEY_MAC); SecretKey secretKey = keyGenerator.generateKey(); return encryptBASE64(secretKey.getEncoded()); } /** * HMAC加密 * * @param data * @param key * @return * @throws Exception */ public static byte[] encryptHMAC(byte[] data, String key) throws Exception { SecretKey secretKey = new SecretKeySpec(decryptBASE64(key), KEY_MAC); Mac mac = Mac.getInstance(secretKey.getAlgorithm()); mac.init(secretKey); return mac.doFinal(data); }。

转载请注明出处51数据库 » javapasswordencoder

软件
前端设计
程序设计
Java相关