當前位置:首頁 » 密碼管理 » 加密fal

加密fal

發布時間: 2022-06-13 11:36:16

❶ WIFI:T:nopass;S:TPGuest_F318;P:;H:false;這個wifi密碼

摘要 您好,1、將無線路由器的密碼寫入指令,打開瀏覽器,輸入192.1681.1,日誌窗口無線路由器登錄,默認路由器管理賬號密碼為admin,可以進入設置界面修改

❷ 如何實現給多個Excel文件只讀加密

excel的制度加密就是將單元格「鎖定」的基礎上將工作表「保護」起來。
具體操作是:選中要保護的單元格→按CTRL+1→保護→鎖定(一般預設就是鎖定的)
然後,審閱→保護工作表→輸入密碼

這是對於一個表而言的。
如要對多個表操作,可以用VBA。下面提供一個供你參考(另外上面的操作也可以通過錄制「宏」的方法放在下面的宏裡面):
Sub prot_sheets()
'' this is to protect the sheets from unauthorized changes
'
nm1 = ActiveWorkbook.Name
icount = Worksheets.Count
For i = 1 To icount
Worksheets(i).Select
ActiveSheet.Protect Password:=mypass@myname, DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=False, AllowFormattingColumns:=False, AllowFormattingRows:=True '
' ActiveSheet.Protect Password:="ssat@3600417", DrawingObjects:=False, Contents:=True, Scenarios:= _
False, AllowFormattingCells:=False, AllowFormattingColumns:=False, AllowFormattingRows:=True '
Next i
ActiveWorkbook.Close savechanges:=True
End Sub

❸ c#加密後解密判斷秘鑰的值是否一致,比如可以返回true或者false

用正確的skey加密一個字元串,放到方法里邊做對比。

❹ JSP用戶密碼加密

這是MD5類的代碼 package Public; //指定類所在的包import java.lang.reflect.Array;public class MD5
{ static final int S11 = 7;
static final int S12 = 12;
static final int S13 = 17;
static final int S14 = 22;
static final int S21 = 5;
static final int S22 = 9;
static final int S23 = 14;
static final int S24 = 20;
static final int S31 = 4;
static final int S32 = 11;
static final int S33 = 16;
static final int S34 = 23;
static final int S41 = 6;
static final int S42 = 10;
static final int S43 = 15;
static final int S44 = 21;
static final byte PADDING[] = {
-128, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0
};
private long state[];
private long count[];
private byte buffer[];
public String digestHexStr;
private byte digest[]; public MD5()
{
state = new long[4];
count = new long[2];
buffer = new byte[64];
digest = new byte[16];
md5Init();
} private void Decode(long al[], byte abyte0[], int i)
{
int j = 0;
for(int k = 0; k < i; k += 4)
{
al[j] = b2iu(abyte0[k]) | b2iu(abyte0[k + 1]) << 8 | b2iu(abyte0[k + 2]) << 16 | b2iu(abyte0[k + 3]) << 24;
j++;
} } private void Encode(byte abyte0[], long al[], int i)
{
int j = 0;
for(int k = 0; k < i; k += 4)
{
abyte0[k] = (byte)(int)(al[j] & 255L);
abyte0[k + 1] = (byte)(int)(al[j] >>> 8 & 255L);
abyte0[k + 2] = (byte)(int)(al[j] >>> 16 & 255L);
abyte0[k + 3] = (byte)(int)(al[j] >>> 24 & 255L);
j++;
} } private long F(long l, long l1, long l2)
{
return l & l1 | ~l & l2;
} private long FF(long l, long l1, long l2, long l3, long l4, long l5, long l6)
{
l += F(l1, l2, l3) + l4 + l6;
l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
l += l1;
return l;
} private long G(long l, long l1, long l2)
{
return l & l2 | l1 & ~l2;
} private long GG(long l, long l1, long l2, long l3, long l4, long l5, long l6)
{
l += G(l1, l2, l3) + l4 + l6;
l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
l += l1;
return l;
} private long H(long l, long l1, long l2)
{
return l ^ l1 ^ l2;
} private long HH(long l, long l1, long l2, long l3, long l4, long l5, long l6)
{
l += H(l1, l2, l3) + l4 + l6;
l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
l += l1;
return l;
} private long I(long l, long l1, long l2)
{
return l1 ^ (l | ~l2);
} private long II(long l, long l1, long l2, long l3, long l4, long l5, long l6)
{
l += I(l1, l2, l3) + l4 + l6;
l = (int)l << (int)l5 | (int)l >>> (int)(32L - l5);
l += l1;
return l;
} public static long b2iu(byte byte0)
{
return (long)(byte0 >= 0 ? byte0 : byte0 & 0xff);
} public static String byteHEX(byte byte0)
{
char ac[] = {
'0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
'A', 'B', 'C', 'D', 'E', 'F'
};
char ac1[] = new char[2];
ac1[0] = ac[byte0 >>> 4 & 0xf];
ac1[1] = ac[byte0 & 0xf];
String s = new String(ac1);
return s;
} public String getMD5ofStr(String s)
{
md5Init();
md5Update(s.getBytes(), s.length());
md5Final();
digestHexStr = "";
for(int i = 0; i < 16; i++)
digestHexStr += byteHEX(digest[i]); return digestHexStr;
} public static void main(String args[])
{
MD5 md5 = new MD5();
if(Array.getLength(args) == 0)
{
System.out.println("MD5 Test suite:");
System.out.println("MD5(\"123456\"):" + md5.getMD5ofStr("123456"));
System.out.println("MD5(\"abcdefghijklmnopqrstuvwxyz\"):" + md5.getMD5ofStr("abcdefghijklmnopqrstuvwxyz"));
System.out.println("MD5(\"\"):" + md5.getMD5ofStr(""));
} else
{
System.out.println("MD5(" + args[0] + ")=" + md5.getMD5ofStr(args[0]));
}
} private void md5Final()
{
byte abyte0[] = new byte[8];
Encode(abyte0, count, 8);
int i = (int)(count[0] >>> 3) & 0x3f;
int j = i >= 56 ? 120 - i : 56 - i;
md5Update(PADDING, j);
md5Update(abyte0, 8);
Encode(digest, state, 16);
} private void md5Init()
{
count[0] = 0L;
count[1] = 0L;
state[0] = 0x67452301L;
state[1] = 0xefcdab89L;
state[2] = 0x98badcfeL;
state[3] = 0x10325476L;
} private void md5Memcpy(byte abyte0[], byte abyte1[], int i, int j, int k)
{
for(int l = 0; l < k; l++)
abyte0[i + l] = abyte1[j + l]; } private void md5Transform(byte abyte0[])
{
long l = state[0];
long l1 = state[1];
long l2 = state[2];
long l3 = state[3];
long al[] = new long[16];
Decode(al, abyte0, 64);
l = FF(l, l1, l2, l3, al[0], 7L, 0xd76aa478L);
l3 = FF(l3, l, l1, l2, al[1], 12L, 0xe8c7b756L);
l2 = FF(l2, l3, l, l1, al[2], 17L, 0x242070dbL);
l1 = FF(l1, l2, l3, l, al[3], 22L, 0xc1bdceeeL);
l = FF(l, l1, l2, l3, al[4], 7L, 0xf57c0fafL);
l3 = FF(l3, l, l1, l2, al[5], 12L, 0x4787c62aL);
l2 = FF(l2, l3, l, l1, al[6], 17L, 0xa8304613L);
l1 = FF(l1, l2, l3, l, al[7], 22L, 0xfd469501L);
l = FF(l, l1, l2, l3, al[8], 7L, 0x698098d8L);
l3 = FF(l3, l, l1, l2, al[9], 12L, 0x8b44f7afL);
l2 = FF(l2, l3, l, l1, al[10], 17L, 0xffff5bb1L);
l1 = FF(l1, l2, l3, l, al[11], 22L, 0x895cd7beL);
l = FF(l, l1, l2, l3, al[12], 7L, 0x6b901122L);
l3 = FF(l3, l, l1, l2, al[13], 12L, 0xfd987193L);
l2 = FF(l2, l3, l, l1, al[14], 17L, 0xa679438eL);
l1 = FF(l1, l2, l3, l, al[15], 22L, 0x49b40821L);
l = GG(l, l1, l2, l3, al[1], 5L, 0xf61e2562L);
l3 = GG(l3, l, l1, l2, al[6], 9L, 0xc040b340L);
l2 = GG(l2, l3, l, l1, al[11], 14L, 0x265e5a51L);
l1 = GG(l1, l2, l3, l, al[0], 20L, 0xe9b6c7aaL);
l = GG(l, l1, l2, l3, al[5], 5L, 0xd62f105dL);
l3 = GG(l3, l, l1, l2, al[10], 9L, 0x2441453L);
l2 = GG(l2, l3, l, l1, al[15], 14L, 0xd8a1e681L);
l1 = GG(l1, l2, l3, l, al[4], 20L, 0xe7d3fbc8L);
l = GG(l, l1, l2, l3, al[9], 5L, 0x21e1cde6L);
l3 = GG(l3, l, l1, l2, al[14], 9L, 0xc33707d6L);
l2 = GG(l2, l3, l, l1, al[3], 14L, 0xf4d50d87L);
l1 = GG(l1, l2, l3, l, al[8], 20L, 0x455a14edL);
l = GG(l, l1, l2, l3, al[13], 5L, 0xa9e3e905L);
l3 = GG(l3, l, l1, l2, al[2], 9L, 0xfcefa3f8L);
l2 = GG(l2, l3, l, l1, al[7], 14L, 0x676f02d9L);
l1 = GG(l1, l2, l3, l, al[12], 20L, 0x8d2a4c8aL);
l = HH(l, l1, l2, l3, al[5], 4L, 0xfffa3942L);
l3 = HH(l3, l, l1, l2, al[8], 11L, 0x8771f681L);
l2 = HH(l2, l3, l, l1, al[11], 16L, 0x6d9d6122L);
l1 = HH(l1, l2, l3, l, al[14], 23L, 0xfde5380cL);
l = HH(l, l1, l2, l3, al[1], 4L, 0xa4beea44L);
l3 = HH(l3, l, l1, l2, al[4], 11L, 0x4bdecfa9L);
l2 = HH(l2, l3, l, l1, al[7], 16L, 0xf6bb4b60L);
l1 = HH(l1, l2, l3, l, al[10], 23L, 0xbebfbc70L);
l = HH(l, l1, l2, l3, al[13], 4L, 0x289b7ec6L);
l3 = HH(l3, l, l1, l2, al[0], 11L, 0xeaa127faL);
l2 = HH(l2, l3, l, l1, al[3], 16L, 0xd4ef3085L);
l1 = HH(l1, l2, l3, l, al[6], 23L, 0x4881d05L);
l = HH(l, l1, l2, l3, al[9], 4L, 0xd9d4d039L);
l3 = HH(l3, l, l1, l2, al[12], 11L, 0xe6db99e5L);
l2 = HH(l2, l3, l, l1, al[15], 16L, 0x1fa27cf8L);
l1 = HH(l1, l2, l3, l, al[2], 23L, 0xc4ac5665L);
l = II(l, l1, l2, l3, al[0], 6L, 0xf4292244L);
l3 = II(l3, l, l1, l2, al[7], 10L, 0x432aff97L);
l2 = II(l2, l3, l, l1, al[14], 15L, 0xab9423a7L);
l1 = II(l1, l2, l3, l, al[5], 21L, 0xfc93a039L);
l = II(l, l1, l2, l3, al[12], 6L, 0x655b59c3L);
l3 = II(l3, l, l1, l2, al[3], 10L, 0x8f0ccc92L);
l2 = II(l2, l3, l, l1, al[10], 15L, 0xffeff47dL);
l1 = II(l1, l2, l3, l, al[1], 21L, 0x85845dd1L);
l = II(l, l1, l2, l3, al[8], 6L, 0x6fa87e4fL);
l3 = II(l3, l, l1, l2, al[15], 10L, 0xfe2ce6e0L);
l2 = II(l2, l3, l, l1, al[6], 15L, 0xa3014314L);
l1 = II(l1, l2, l3, l, al[13], 21L, 0x4e0811a1L);
l = II(l, l1, l2, l3, al[4], 6L, 0xf7537e82L);
l3 = II(l3, l, l1, l2, al[11], 10L, 0xbd3af235L);
l2 = II(l2, l3, l, l1, al[2], 15L, 0x2ad7d2bbL);
l1 = II(l1, l2, l3, l, al[9], 21L, 0xeb86d391L);
state[0] += l;
state[1] += l1;
state[2] += l2;
state[3] += l3;
} private void md5Update(byte abyte0[], int i)
{
byte abyte1[] = new byte[64];
int k = (int)(count[0] >>> 3) & 0x3f;
if((count[0] += i << 3) < (long)(i << 3))
count[1]++;
count[1] += i >>> 29;
int l = 64 - k;
int j;
if(i >= l)
{
md5Memcpy(buffer, abyte0, k, 0, l);
md5Transform(buffer);
for(j = l; j + 63 < i; j += 64)
{
md5Memcpy(abyte1, abyte0, 0, j, 64);
md5Transform(abyte1);
} k = 0;
} else
{
j = 0;
}
md5Memcpy(buffer, abyte0, k, j, i - j);
}}

❺ 有人知道這是什麼格式的加密數據嗎

你好,這個應該是Java DES 加密
其加密和解密方式請參考:http://www.oschina.net/code/snippet_727646_18383
PS:你要解密的話,必須用同一個DESUtil工具,不然會提示解密錯誤的。

❻ 菜鳥級問題:在flash裡面true和false表示什麼意思

true 和 false 是 布爾型變數的唯一能取的兩個值,分別代表"真"和"假"
其實內部來說,所有的變數都是二進制的形式保存的.
所以 true = 11111111
false = 00000000
長度為 1 B

不過讀取的時候,只看最低位是0是1

這里,你可以當這個是一種只可以表達兩個值的變數就好了.
_root下的tt,lp就是布爾變數了.具體這兩個變數是干什麼的,那還要看你的整個flash

❼ 如何將自己做的網頁上添加文字加密!使瀏覽都不能復制網頁文字

簡單點的
<script language="JavaScript">
document.oncontextmenu=new Function("event.returnValue=false;"); //禁止右鍵功能,單擊右鍵將無任何反應
document.onselectstart=new Function("event.returnValue=false;"); //禁止先擇,也就是無法復制
</script>

現在網頁中,只要是文字類的,都有辦法復制,比如通過「查看源文件」,或者「網頁另存為」等等方法。

禁止右鍵
<body oncontextmenu="return false">

❽ 自動給Word文檔統一加密的辦法

Word提供了加密的功能,但不能自動給文檔加密。下面介紹一種能自動給Word文檔統一加上密碼的辦法(以Word
2003為例)。
第一步:在“工具”菜單中選擇“宏”選項卡,單擊“宏”命令,鍵入宏的名稱“AllAutoPassword”,在“宏的位置”框中選擇“所有的活動模板和文檔”,在“說明”中可以鍵入對該宏的說明,例如“利用‘宏’給文檔進行統一加密”,最後單擊“創建”按鈕即可。
自動給Word文檔統一加密的辦法
第二步:系統會彈出“宏”編輯窗口,在Sub
AllAutoPassword()和End
Sub之間輸入以下代碼:
//密碼為123456
With
Options
.AllowFastSave
=
True
.BackgroundSave
=
True
.CreateBackup
=
False
.SavePropertiesPrompt
=
False
.SaveInterval
=
15
.SaveNormalPrompt
=
False
End
With
With
ActiveDocument
.ReadOnlyRecommended
=
False
.EmbedTrueTypeFonts
=
False
.SaveFormsData
=
False
.SaveSubsetFonts
=
False
.Password
=
“123456”
’打開許可權密碼
.WritePassword
=
“123456”
’修改許可權密碼
End
With
Application.DefaultSaveFormat
=


第三步:代碼輸入後,選擇“文件”菜單中的“保存Normal”,點擊“關閉並返回到Microsoft
Word”,再在“工具”菜單中選擇“自定義”,選擇“命令”標簽,在“類別”中選擇“宏”,在“命令”中找到
“Normal.NewMacros.AllAutoPassword”,然後將它移至常用工具欄內即可。
以後,用戶新建或關閉一個文檔時,該宏將提醒用戶是否保存對該文檔的修改,如果選擇“是”,那麼文檔將自動被加上密碼“123456”,反之則不加密碼。

❾ 在JSP中如何實現MD5加密

在JSP中如何實現MD5加密
源碼

/**
* 類名: MD5Digest<br>
* 說明: 用來進行密碼加密的md5公用參數<br>
* 編寫日期: 2001/03/05<br>
* 修改者: <br>
* 修改信息: <br>
* @author edgarlo [email protected]
* @version 1.0<br>
*/

import java.security.MessageDigest;
import java.security.NoSuchAlgorithmException;

public class MD5Digest
{

private MessageDigest __md5 = null;
private StringBuffer __digestBuffer = null;

public MD5Digest()
throws NoSuchAlgorithmException
{
__md5 = MessageDigest.getInstance("MD5");
__digestBuffer = new StringBuffer();
}

public String md5crypt(String s)
{
__digestBuffer.setLength(0);
byte abyte0[] = __md5.digest(s.getBytes());
for(int i = 0; i < abyte0.length; i++)
__digestBuffer.append(toHex(abyte0));

return __digestBuffer.toString();
}
public String toHex(byte one){
String HEX="0123456789ABCDEF";
char[] result=new char[2];
result[0]=HEX.charAt((one & 0xf0) >> 4);
result[1]=HEX.charAt(one & 0x0f);
String mm=new String(result);
return mm;
}
}

--------------------------------------------------------------------------------
/************************************************
MD5 演算法的Java Bean
@author:Topcat Tuppin
Last Modified:10,Mar,2001
*************************************************/
package beartool;
import java.lang.reflect.*;
/*************************************************
md5 類實現了RSA Data Security, Inc.在提交給IETF
的RFC1321中的MD5 message-digest 演算法。
*************************************************/

public class MD5 {
/* 下面這些S11-S44實際上是一個4*4的矩陣,在原始的C實現中是用#define 實現的,
這里把它們實現成為static final是表示了只讀,切能在同一個進程空間內的多個
Instance間共享*/
static final int S11 = 7;
static final int S12 = 12;
static final int S13 = 17;
static final int S14 = 22;

static final int S21 = 5;
static final int S22 = 9;
static final int S23 = 14;
static final int S24 = 20;

static final int S31 = 4;
static final int S32 = 11;
static final int S33 = 16;
static final int S34 = 23;

static final int S41 = 6;
static final int S42 = 10;
static final int S43 = 15;
static final int S44 = 21;

static final byte[] PADDING = { -128, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
/* 下面的三個成員是MD5計算過程中用到的3個核心數據,在原始的C實現中
被定義到MD5_CTX結構中

*/
private long[] state = new long[4]; // state (ABCD)
private long[] count = new long[2]; // number of bits, molo 2^64 (lsb first)
private byte[] buffer = new byte[64]; // input buffer

/* digestHexStr是MD5的唯一一個公共成員,是最新一次計算結果的
16進制ASCII表示.
*/
public String digestHexStr;

/* digest,是最新一次計算結果的2進制內部表示,表示128bit的MD5值.
*/
private byte[] digest = new byte[16];

/*
getMD5ofStr是類MD5最主要的公共方法,入口參數是你想要進行MD5變換的字元串
返回的是變換完的結果,這個結果是從公共成員digestHexStr取得的.
*/
public String getMD5ofStr(String inbuf) {
md5Init();
md5Update(inbuf.getBytes(), inbuf.length());
md5Final();
digestHexStr = "";
for (int i = 0; i < 16; i++) {
digestHexStr += byteHEX(digest);
}
return digestHexStr;

}
// 這是MD5這個類的標准構造函數,JavaBean要求有一個public的並且沒有參數的構造函數
public MD5() {
md5Init();

return;
}

/* md5Init是一個初始化函數,初始化核心變數,裝入標準的幻數 */
private void md5Init() {
count[0] = 0L;
count[1] = 0L;
///* Load magic initialization constants.

state[0] = 0x67452301L;
state[1] = 0xefcdab89L;
state[2] = 0x98badcfeL;
state[3] = 0x10325476L;

return;
}
/* F, G, H ,I 是4個基本的MD5函數,在原始的MD5的C實現中,由於它們是
簡單的位運算,可能出於效率的考慮把它們實現成了宏,在java中,我們把它們
實現成了private方法,名字保持了原來C中的。 */

private long F(long x, long y, long z) {
return (x & y) | ((~x) & z);

}
private long G(long x, long y, long z) {
return (x & z) | (y & (~z));

}
private long H(long x, long y, long z) {
return x ^ y ^ z;
}

private long I(long x, long y, long z) {
return y ^ (x | (~z));
}

/*
FF,GG,HH和II將調用F,G,H,I進行近一步變換
FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
Rotation is separate from addition to prevent recomputation.
*/

private long FF(long a, long b, long c, long d, long x, long s,
long ac) {
a += F (b, c, d) + x + ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a += b;
return a;
}

private long GG(long a, long b, long c, long d, long x, long s,
long ac) {
a += G (b, c, d) + x + ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a += b;
return a;
}
private long HH(long a, long b, long c, long d, long x, long s,
long ac) {
a += H (b, c, d) + x + ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a += b;
return a;
}
private long II(long a, long b, long c, long d, long x, long s,
long ac) {
a += I (b, c, d) + x + ac;
a = ((int) a << s) | ((int) a >>> (32 - s));
a += b;
return a;
}
/*
md5Update是MD5的主計算過程,inbuf是要變換的位元組串,inputlen是長度,這個
函數由getMD5ofStr調用,調用之前需要調用md5init,因此把它設計成private的
*/
private void md5Update(byte[] inbuf, int inputLen) {

int i, index, partLen;
byte[] block = new byte[64];
index = (int)(count[0] >>> 3) & 0x3F;
// /* Update number of bits */
if ((count[0] += (inputLen << 3)) < (inputLen << 3))
count[1]++;
count[1] += (inputLen >>> 29);

partLen = 64 - index;

// Transform as many times as possible.
if (inputLen >= partLen) {
md5Memcpy(buffer, inbuf, index, 0, partLen);
md5Transform(buffer);

for (i = partLen; i + 63 < inputLen; i += 64) {

md5Memcpy(block, inbuf, 0, i, 64);
md5Transform (block);
}
index = 0;

} else

i = 0;

///* Buffer remaining input */
md5Memcpy(buffer, inbuf, index, i, inputLen - i);

}

/*
md5Final整理和填寫輸出結果
*/
private void md5Final () {
byte[] bits = new byte[8];
int index, padLen;

///* Save number of bits */
Encode (bits, count, 8);

///* Pad out to 56 mod 64.
index = (int)(count[0] >>> 3) & 0x3f;
padLen = (index < 56) ? (56 - index) : (120 - index);
md5Update (PADDING, padLen);

///* Append length (before padding) */
md5Update(bits, 8);

///* Store state in digest */
Encode (digest, state, 16);

}

/* md5Memcpy是一個內部使用的byte數組的塊拷貝函數,從input的inpos開始把len長度的
位元組拷貝到output的outpos位置開始
*/

private void md5Memcpy (byte[] output, byte[] input,
int outpos, int inpos, int len)
{
int i;

for (i = 0; i < len; i++)
output[outpos + i] = input[inpos + i];
}

/*
md5Transform是MD5核心變換程序,有md5Update調用,block是分塊的原始位元組
*/
private void md5Transform (byte block[]) {
long a = state[0], b = state[1], c = state[2], d = state[3];
long[] x = new long[16];

Decode (x, block, 64);

/* Round 1 */
a = FF (a, b, c, d, x[0], S11, 0xd76aa478L); /* 1 */
d = FF (d, a, b, c, x[1], S12, 0xe8c7b756L); /* 2 */
c = FF (c, d, a, b, x[2], S13, 0x242070dbL); /* 3 */
b = FF (b, c, d, a, x[3], S14, 0xc1bdceeeL); /* 4 */
a = FF (a, b, c, d, x[4], S11, 0xf57c0fafL); /* 5 */
d = FF (d, a, b, c, x[5], S12, 0x4787c62aL); /* 6 */
c = FF (c, d, a, b, x[6], S13, 0xa8304613L); /* 7 */
b = FF (b, c, d, a, x[7], S14, 0xfd469501L); /* 8 */
a = FF (a, b, c, d, x[8], S11, 0x698098d8L); /* 9 */
d = FF (d, a, b, c, x[9], S12, 0x8b44f7afL); /* 10 */
c = FF (c, d, a, b, x[10], S13, 0xffff5bb1L); /* 11 */
b = FF (b, c, d, a, x[11], S14, 0x895cd7beL); /* 12 */
a = FF (a, b, c, d, x[12], S11, 0x6b901122L); /* 13 */
d = FF (d, a, b, c, x[13], S12, 0xfd987193L); /* 14 */
c = FF (c, d, a, b, x[14], S13, 0xa679438eL); /* 15 */
b = FF (b, c, d, a, x[15], S14, 0x49b40821L); /* 16 */

/* Round 2 */
a = GG (a, b, c, d, x[1], S21, 0xf61e2562L); /* 17 */
d = GG (d, a, b, c, x[6], S22, 0xc040b340L); /* 18 */
c = GG (c, d, a, b, x[11], S23, 0x265e5a51L); /* 19 */
b = GG (b, c, d, a, x[0], S24, 0xe9b6c7aaL); /* 20 */
a = GG (a, b, c, d, x[5], S21, 0xd62f105dL); /* 21 */
d = GG (d, a, b, c, x[10], S22, 0x2441453L); /* 22 */
c = GG (c, d, a, b, x[15], S23, 0xd8a1e681L); /* 23 */
b = GG (b, c, d, a, x[4], S24, 0xe7d3fbc8L); /* 24 */
a = GG (a, b, c, d, x[9], S21, 0x21e1cde6L); /* 25 */
d = GG (d, a, b, c, x[14], S22, 0xc33707d6L); /* 26 */
c = GG (c, d, a, b, x[3], S23, 0xf4d50d87L); /* 27 */
b = GG (b, c, d, a, x[8], S24, 0x455a14edL); /* 28 */
a = GG (a, b, c, d, x[13], S21, 0xa9e3e905L); /* 29 */
d = GG (d, a, b, c, x[2], S22, 0xfcefa3f8L); /* 30 */
c = GG (c, d, a, b, x[7], S23, 0x676f02d9L); /* 31 */
b = GG (b, c, d, a, x[12], S24, 0x8d2a4c8aL); /* 32 */

/* Round 3 */
a = HH (a, b, c, d, x[5], S31, 0xfffa3942L); /* 33 */
d = HH (d, a, b, c, x[8], S32, 0x8771f681L); /* 34 */
c = HH (c, d, a, b, x[11], S33, 0x6d9d6122L); /* 35 */
b = HH (b, c, d, a, x[14], S34, 0xfde5380cL); /* 36 */
a = HH (a, b, c, d, x[1], S31, 0xa4beea44L); /* 37 */
d = HH (d, a, b, c, x[4], S32, 0x4bdecfa9L); /* 38 */
c = HH (c, d, a, b, x[7], S33, 0xf6bb4b60L); /* 39 */
b = HH (b, c, d, a, x[10], S34, 0xbebfbc70L); /* 40 */
a = HH (a, b, c, d, x[13], S31, 0x289b7ec6L); /* 41 */
d = HH (d, a, b, c, x[0], S32, 0xeaa127faL); /* 42 */
c = HH (c, d, a, b, x[3], S33, 0xd4ef3085L); /* 43 */
b = HH (b, c, d, a, x[6], S34, 0x4881d05L); /* 44 */
a = HH (a, b, c, d, x[9], S31, 0xd9d4d039L); /* 45 */
d = HH (d, a, b, c, x[12], S32, 0xe6db99e5L); /* 46 */
c = HH (c, d, a, b, x[15], S33, 0x1fa27cf8L); /* 47 */
b = HH (b, c, d, a, x[2], S34, 0xc4ac5665L); /* 48 */

/* Round 4 */
a = II (a, b, c, d, x[0], S41, 0xf4292244L); /* 49 */
d = II (d, a, b, c, x[7], S42, 0x432aff97L); /* 50 */
c = II (c, d, a, b, x[14], S43, 0xab9423a7L); /* 51 */
b = II (b, c, d, a, x[5], S44, 0xfc93a039L); /* 52 */
a = II (a, b, c, d, x[12], S41, 0x655b59c3L); /* 53 */
d = II (d, a, b, c, x[3], S42, 0x8f0ccc92L); /* 54 */
c = II (c, d, a, b, x[10], S43, 0xffeff47dL); /* 55 */
b = II (b, c, d, a, x[1], S44, 0x85845dd1L); /* 56 */
a = II (a, b, c, d, x[8], S41, 0x6fa87e4fL); /* 57 */
d = II (d, a, b, c, x[15], S42, 0xfe2ce6e0L); /* 58 */
c = II (c, d, a, b, x[6], S43, 0xa3014314L); /* 59 */
b = II (b, c, d, a, x[13], S44, 0x4e0811a1L); /* 60 */
a = II (a, b, c, d, x[4], S41, 0xf7537e82L); /* 61 */
d = II (d, a, b, c, x[11], S42, 0xbd3af235L); /* 62 */
c = II (c, d, a, b, x[2], S43, 0x2ad7d2bbL); /* 63 */
b = II (b, c, d, a, x[9], S44, 0xeb86d391L); /* 64 */

state[0] += a;
state[1] += b;
state[2] += c;
state[3] += d;

}

/*Encode把long數組按順序拆成byte數組,因為java的long類型是64bit的,
只拆低32bit,以適應原始C實現的用途
*/
private void Encode (byte[] output, long[] input, int len) {
int i, j;

for (i = 0, j = 0; j < len; i++, j += 4) {
output[j] = (byte)(input & 0xffL);
output[j + 1] = (byte)((input >>> 8) & 0xffL);
output[j + 2] = (byte)((input >>> 16) & 0xffL);
output[j + 3] = (byte)((input >>> 24) & 0xffL);
}
}

/*Decode把byte數組按順序合成成long數組,因為java的long類型是64bit的,
只合成低32bit,高32bit清零,以適應原始C實現的用途
*/
private void Decode (long[] output, byte[] input, int len) {
int i, j;

for (i = 0, j = 0; j < len; i++, j += 4)
output = b2iu(input[j]) |
(b2iu(input[j + 1]) << 8) |
(b2iu(input[j + 2]) << 16) |
(b2iu(input[j + 3]) << 24);

return;
}

/*
b2iu是我寫的一個把byte按照不考慮正負號的原則的」升位」程序,因為java沒有unsigned運算
*/
public static long b2iu(byte b) {
return b < 0 ? b & 0x7F + 128 : b;
}

/*byteHEX(),用來把一個byte類型的數轉換成十六進制的ASCII表示,
因為java中的byte的toString無法實現這一點,我們又沒有C語言中的
sprintf(outbuf,"%02X",ib)
*/
public static String byteHEX(byte ib) {
char[] Digit = { '0','1','2','3','4','5','6','7','8','9',
'A','B','C','D','E','F' };
char [] ob = new char[2];
ob[0] = Digit[(ib >>> 4) & 0X0F];
ob[1] = Digit[ib & 0X0F];
String s = new String(ob);
return s;
}

public static void main(String args[]) {

MD5 m = new MD5();
if (Array.getLength(args) == 0) { //如果沒有參數,執行標準的Test Suite

System.out.println("MD5 Test suite:");
System.out.println("MD5(\"\"):"+m.getMD5ofStr(""));
System.out.println("MD5(\"a\"):"+m.getMD5ofStr("a"));
System.out.println("MD5(\"abc\"):"+m.getMD5ofStr("abc"));
System.out.println("MD5(\"message digest\"):"+m.getMD5ofStr("message digest"));
System.out.println("MD5(\"abcdefghijklmnopqrstuvwxyz\"):"+
m.getMD5ofStr("abcdefghijklmnopqrstuvwxyz"));
System.out.println("MD5(\"\"):"+
m.getMD5ofStr(""));
}
else
System.out.println("MD5(" + args[0] + ")=" + m.getMD5ofStr(args[0]));

}

}

JSP中的使用方法

-------------------------------------------------------------------------------
<%@ page language='java' %>
<jsp:useBean id='oMD5' scope='request' class='beartool.MD5'/>

<%@ page import='java.util.*'%>
<%@ page import='java.sql.*'%>
<html>
<body>
<%
String userid = request.getParameter("UserID"); //獲取用戶輸入UserID
String password = request.getParameter("Password"); //獲取用戶輸入的Password

String pwdmd5 = oMD5.getMD5ofStr(password); //計算MD5的值

PrintWriter rp = response.getWriter();

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Connection con = DriverManager.getConnection("jdbc:odbc:community", "", "");

Statement stmt = con.createStatement();

ResultSet rs = stmt.executeQuery("select * from users where userID ='"+userid+"' and pwdmd5= '" + pwdmd5+"'" );

if (rs.next())
{
rp.print("Login OK");

}
else
{
rp.print("Login Fail");
}

stmt.close();
con.close();

%>

</body>

</html>

具體我也不太清楚..

可以去 www.xuebc.com 找下

原文地址:http://www.xuebc.com/read.php?tid=434

❿ WIFI:S:LBL702;T:WPA;P:LBL7020308;H:false;;哪些是WLAN密碼

WLAN密碼是S後面這個LBL702。
WIFI:S:LBL702;T:WPA;P:LBL7020308;H:false;;這個指的是Wi-Fi的ssid名稱,其加密方式為WPA加密,即一種保護無線電腦網路(Wi-Fi)安全的系統。
無線wifi密碼破解器確實可以破解相對簡單的密碼,但是這種行為是違法的。靠破解密碼蹭用他人網路的行為已違反了相關法規。
《中華人民共和國電信條例》第59條規定:任何組織或者個人不得有擾亂電信市場秩序的行為,其中就包括盜接他人電信線路,復制他人電信碼號,使用明知是盜接、復制的電信設施或者碼號。
根據《民法通則》的規定,類似行為屬於不當得利,需承擔相關法律責任。

熱點內容
win7c盤加密 發布:2025-05-14 15:04:49 瀏覽:510
dm碼編程 發布:2025-05-14 15:03:56 瀏覽:402
apache加密 發布:2025-05-14 14:49:13 瀏覽:967
安卓什麼軟體蘋果不能用 發布:2025-05-14 14:49:03 瀏覽:769
jsoupjava 發布:2025-05-14 14:38:00 瀏覽:885
影豹選哪個配置最好 發布:2025-05-14 14:28:50 瀏覽:255
定期預演算法的 發布:2025-05-14 14:24:08 瀏覽:894
interbase資料庫 發布:2025-05-14 13:49:50 瀏覽:691
微商海報源碼 發布:2025-05-14 13:49:42 瀏覽:347
分布式緩存部署步驟 發布:2025-05-14 13:24:51 瀏覽:611