正文
java密码安全等级代码 java密码解密
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
java的线程安全四种方式五个等级
四种方式 sychronized关键字 sychronized method(){} sychronized (objectReference) {/*block*/} static synchronized method(){} sychronized(classname class)其中 和 是代表锁当前对象 即一个对象就一个锁 和 代表锁这个类 即这个类java密码安全等级代码的锁要注意java密码安全等级代码的是sychronized method()不是锁这个函数 而是锁对象 即 如果这个类中有两个方法都是sychronized 那么只要有两个线程共享一个该类java密码安全等级代码的reference 每个调用这两个方法之一 不管是否同一个方法 都会用这个对象锁进行同步 锁类的 和 类推 即该类的不同reference调用java密码安全等级代码了sychronized区段的咚咚就会受类锁的控制还有 如果两个函数调用的先后顺序不能被打断 那么可以有个专门的锁对象来完成这个任务 class MyLock{ synchronized getLock() { //####还没写完 }}五个等级 参见effective java Item Document thread safetyimmutable 不可变对象 thread safe 线程安全的 可以放心使用 如java util Timer conditionally thread safe 条件线程安全的 如Vector和Hashtable 一般是安全的 除非存在几个方法调用之间的顺序不能被打断 这时可以用额外的锁来完成 thread patible 可以使用synchronized (objectReference)来协助完成对线程的调用 thread hostile 不安全的wait notifyAll在循环中使用wait 使用notifyAll而不是notify pipejava中也有pipe的 四个类 PipedInputStream PipedInputReader PipedOutputStream PipedOutputWriter 下面是一段生产者消费者的代码(摘自core javaII) /* set up pipes */ PipedOutputStream pout = new PipedOutputStream(); PipedInputStream pin = new PipedInputStream(pout ); PipedOutputStream pout = new PipedOutputStream(); PipedInputStream pin = new PipedInputStream(pout ); /* construct threads */ Producer prod = new Producer(pout ); Filter filt = new Filter(pin pout ); Consumer cons = new Consumer(pin ); /* start threads */ prod start(); filt start(); cons start(); lishixinzhi/Article/program/Java/gj/201311/27306
java密码:密码为0-9、a-z的字符组合,密码中的字符区分大小写
java密码:密码为0-9、a-z的字符组合,密码中的字符区分大小写就如下。
密码的业务规则密码位数为6-16个字符,区分大小写,支持字母(a-z,A-Z)、数字(0-9)及“_~@#$^”符号 代码如下(示例):^[A-Za-z0-9_~@#$^]{6,16}+$
Java如何判断密码强度?
本程序按以下的方式进行评估.
1.如果密码少于5位,那么就认为这是一个弱密码.
2.如果密码只由数字、小写字母、大写字母或其它特殊符号当中的一种组成,则认为这是一个弱密码.
3.如果密码由数字、小写字母、大写字母或其它特殊符号当中的两种组成,则认为这是一个中度安全的密码.
4.如果密码由数字、小写字母、大写字母或其它特殊符号当中的三种以上组成,则认为这是一个比较安全的密码.
本程序将根据用户输入的密码分别显示不同的颜色表示密码的强度,具体程序如下:
以下是引用片段:
script language=javascript
//CharMode函数
//测试某个字符是属于哪一类.
function CharMode(iN){
if (iN=48 iN =57) //数字
return 1;
if (iN=65 iN =90) //大写字母
return 2;
if (iN=97 iN =122) //小写
return 4;
else
return 8; //特殊字符
}
//bitTotal函数
//计算出当前密码当中一共有多少种模式
function bitTotal(num){
modes=0;
for (i=0;i4;i++){
if (num 1) modes++;
num=1;
}
return modes;
}
//checkStrong函数
//返回密码的强度级别
function checkStrong(sPW){
if (sPW.length=4)
return 0; //密码太短
Modes=0;
for (i=0;isPW.length;i++){
//测试每一个字符的类别并统计一共有多少种模式.
Modes|=CharMode(sPW.charCodeAt(i));
}
return bitTotal(Modes);
}
//pwStrength函数
//当用户放开键盘或密码输入框失去焦点时,根据不同的级别显示不同的颜色
function pwStrength(pwd){
O_color="#eeeeee";
L_color="#FF0000";
M_color="#FF9900";
H_color="#33CC00";
if (pwd==null||pwd==''){
Lcolor=Mcolor=Hcolor=O_color;
}
else{
S_level=checkStrong(pwd);
switch(S_level) {
case 0:
Lcolor=Mcolor=Hcolor=O_color;
case 1:
Lcolor=L_color;
Mcolor=Hcolor=O_color;
break;
case 2:
Lcolor=Mcolor=M_color;
Hcolor=O_color;
break;
default:
Lcolor=Mcolor=Hcolor=H_color;
}
}
document.getElementById("strength_L").style.background=Lcolor;
document.getElementById("strength_M").style.background=Mcolor;
document.getElementById("strength_H").style.background=Hcolor;
return;
}
/script
form name=form1 action=""
输入密码:input type=password size=10 onKeyUp=pwStrength(this.value) onBlur=pwStrength(this.value)
br密码强度:
table width="217" border="1" cellspacing="0" cellpadding="1" bordercolor="#cccccc" height="23" style='display:inline'
tr align="center" bgcolor="#eeeeee"
td width="33%" id="strength_L"弱/td
td width="33%" id="strength_M"中/td
td width="33%" id="strength_H"强/td
/tr
/table
/form
java加密的几种方式
基本java密码安全等级代码的单向加密算法java密码安全等级代码:
BASE64 严格地说java密码安全等级代码,属于编码格式java密码安全等级代码,而非加密算法
MD5(Message Digest algorithm 5java密码安全等级代码,信息摘要算法)
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);
}
写一个java正则表达式,判断输入的密码强度,是数字弱,是字母较弱,数字加字母强,用\s写
import java.util.Scanner;
public class JButtonTest
{
public static void main ( String[] args )
{
Scanner scanner = new Scanner (System.in);
System.out.println ("写一个java正则表达式,判断输入的密码强度,是数字弱搜索,是字母较弱,数字加字母强:");
while (scanner.hasNextLine ())
{
String line = scanner.nextLine ();
if (line.matches ("^\\d+$"))
{
System.out.println ("数字弱");
}
else if (line.matches ("^[a-zA-Z]+$"))
{
System.out.println ("字母弱");
}
else if (line.matches ("(?i)^((\\d+[\\da-z]*[a-z]+)|([a-z]+[\\da-z]*\\d+)|([a-z]+[\\da-z]*[a-z]*)|(\\d+[\\da-z]*\\d*))$"))
{
System.out.println ("密码强");
}
else
{
System.out.println ("你不按套路出牌啊。你滴承诺尼,你滴担架尼?");
scanner.close ();
break;
}
}
}
}
java 密码强度问题,请高手作答下,见问题补充,悬赏10
public class Demo {
public static Safelevel GetPwdSecurityLevel(String pPasswordStr) {
Safelevel safelevel = Safelevel.VERY_WEAK;
if (pPasswordStr == null) {
return safelevel;
}
int grade = 0;
int index = 0;
char[] pPsdChars = pPasswordStr.toCharArray();
int numIndex = 0;
int sLetterIndex = 0;
int lLetterIndex = 0;
int symbolIndex = 0;
for (char pPsdChar : pPsdChars) {
int ascll = pPsdChar;
/*
* 数字 48-57 A-Z 65 - 90 a-z 97 - 122 !"#$%'()*+,-./ (ASCII码java密码安全等级代码:33~47)
* :;=?@ (ASCII码java密码安全等级代码:58~64) [\]^_` (ASCII码:91~96) {|}~
* (ASCII码:123~126)
*/
if (ascll = 48 ascll = 57) {
numIndex++;
} else if (ascll = 65 ascll = 90) {
lLetterIndex++;
} else if (ascll = 97 ascll = 122) {
sLetterIndex++;
} else if ((ascll = 33 ascll = 47)
|| (ascll = 58 ascll = 64)
|| (ascll = 91 ascll = 96)
|| (ascll = 123 ascll = 126)) {
symbolIndex++;
}
}
/*
* 一、密码长度: 5 分: 小于等于 4 个字符 10 分: 5 到 7 字符 25 分: 大于等于 8 个字符
*/
if (pPsdChars.length = 4) {
index = 5;
} else if (pPsdChars.length = 7) {
index = 10;
} else {
index = 25;
}
grade += index;
/*
* 二、字母: 0 分: 没有字母 10 分: 全都是小(大)写字母 20 分: 大小写混合字母
*/
if (lLetterIndex == 0 sLetterIndex == 0) {
index = 0;
} else if (lLetterIndex != 0 sLetterIndex != 0) {
index = 20;
} else {
index = 10;
}
grade += index;
/*
* 三、数字: 0 分: 没有数字 10 分: 1 个数字 20 分: 大于 1 个数字
*/
if (numIndex == 0) {
index = 0;
} else if (numIndex == 1) {
index = 10;
} else {
index = 20;
}
grade += index;
/*
* 四、符号: 0 分: 没有符号 10 分: 1 个符号 25 分: 大于 1 个符号
*/
if (symbolIndex == 0) {
index = 0;
} else if (symbolIndex == 1) {
index = 10;
} else {
index = 25;
}
grade += index;
/*
* 五、奖励: 2 分: 字母和数字 3 分: 字母、数字和符号 5 分: 大小写字母、数字和符号
*/
if ((sLetterIndex != 0 || lLetterIndex != 0) numIndex != 0) {
index = 2;
} else if ((sLetterIndex != 0 || lLetterIndex != 0) numIndex != 0
symbolIndex != 0) {
index = 3;
} else if (sLetterIndex != 0 lLetterIndex != 0 numIndex != 0
symbolIndex != 0) {
index = 5;
}
grade += index;
/*
* 最后java密码安全等级代码的评分标准: = 90: 非常安全 = 80: 安全(Secure) = 70: 非常强 = 60: 强(Strong) =
* 50: 一般(Average) = 25: 弱(Weak) = 0: 非常弱
*/
if(grade =90){
safelevel = Safelevel.VERY_SECURE;
}else if(grade = 80){
safelevel = Safelevel.SECURE;
}else if(grade = 70){
safelevel = Safelevel.VERY_STRONG;
}else if(grade = 60){
safelevel = Safelevel.STRONG;
}else if(grade = 50){
safelevel = Safelevel.AVERAGE;
}else if(grade = 25){
safelevel = Safelevel.WEAK;
}else if(grade = 0){
safelevel = Safelevel.VERY_WEAK;
}
return safelevel;
}
public enum Safelevel {
VERY_WEAK, /* 非常弱 */
WEAK, /* 弱 */
AVERAGE, /* 一般 */
STRONG, /* 强 */
VERY_STRONG, /* 非常强 */
SECURE, /* 安全 */
VERY_SECURE /* 非常安全 */
}
}
坐等悬赏。
关于java密码安全等级代码和java密码解密的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。