sqlserverhash
網頁鏈接這個網站可以計算
⑵ SQLSERVER 2008 password_hash密碼破解
密碼是:ao2010
⑶ sqlmap跑的hash怎麼破解
首先得有這個 sqljdbc.jar 驅動包哦
下面是連接代碼:
package com.message.;
/**
*BaseDao
*2009
*資料庫連接包
*/
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class BaseDao{
public final static String driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver"; // 資料庫驅動
public final static String url = "jdbc:sqlserver://localhost:1433;DataBaseName=messageBoard";// url
public final static String dbName = "sa"; // 資料庫用戶名
public final static String dbPass = "sa"; // 資料庫密碼
/**
* 得到資料庫連接
* @throws ClassNotFoundException
* @throws SQLException
* @return 資料庫連接
*/
public Connection getConn(){
Connection con = null ;
try {
Class.forName(driver); //注冊驅動
con = DriverManager .getConnection(url,dbName,dbPass); //獲得資料庫連接
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
}
return con ; //返回連接
}
/**
* 釋放資源
* @param con 資料庫連接
* @param prs PreparedStatement對象
* @param rs 結果集
*/
public void closeAll( Connection con, PreparedStatement prs, ResultSet rs ) {
/* 如果rs不空,關閉rs */
if(rs != null){
try { rs.close();} catch (SQLException e) {e.printStackTrace();}
}
/* 如果prs不空,關閉prs */
if(prs != null){
try { prs.close();} catch (SQLException e) {e.printStackTrace();}
}
/* 如果con不空,關閉con */
if(con != null){
try { con.close();} catch (SQLException e) {e.printStackTrace();}
}
}
/**
* 執行SQL語句,可以進行增、刪、改的操作,不能執行查詢
* @param sql 預編譯的 SQL 語句
* @param param 預編譯的 SQL 語句中的『?』參數的字元串數組
* @return 影響的條數
*/
public int executeSQL(String preparedSql,Object[] param) {
Connection con = null;
PreparedStatement prs = null;
int num = 0;
/* 處理SQL,執行SQL */
try {
con = getConn(); // 得到資料庫連接
prs = con.prepareStatement(preparedSql); // 得到PreparedStatement對象
if( param != null ) {
for( int i = 0; i < param.length; i++ ) {
prs.setObject(i+1, param[i]); // 為預編譯sql設置參數
}
}
num = prs.executeUpdate(); // 執行SQL語句
} catch (SQLException e) {
e.printStackTrace(); // 處理SQLException異常
} finally {
closeAll(con,prs,null); // 釋放資源
}
return num;
}
}
⑷ 如何查詢SQLServer某進程當前正在執行或其最近一次執行的SQL語句
SELECT
c.session_id,c.net_transport,c.encrypt_option,
c.auth_scheme,s.host_name,s.program_name,
s.client_interface_name,s.login_name,s.nt_domain,
s.nt_user_name,s.original_login_name,c.connect_time,
s.login_time,q.text
FROMsys.dm_exec_connectionsASc
JOINsys.dm_exec_sessionsASs
ONc.session_id=s.session_id
crossapplyfn_get_sql(most_recent_sql_handle)q
where條件自己寫
⑸ MsSQLServer是如何加密口令的
SQL SERVER的口令到資料庫存儲的加密方法,也是讓人怪異的。其過程如下:
在獲得網路解密密碼的口令以後在
005F9D5A處call SQLSORT_14,實現一個轉換為大寫口令緩沖進行保存。
然後在004def6d處調用一個函數取出資料庫中的加密的PASSWORD,其形式如下:
2個位元組的頭0x0100(固定)
4個位元組的HASH加秘KEY
20個位元組的HASH1
20個位元組的HASH2
如我取出的一個例子:
fx:0x0100 1751857F
固定 補充KEY HASH1 HASH2
口令是:123456
SQL首先用4個位元組的HASH加秘KEY補上其兩處口令的緩沖,一個為大寫,一個為小寫。然後其加密過程如下C函數
CryptAcquireContextW(&hProv,NULL,L("Microsoft Base Cryptographic Provider v1.0"),1,0xf0000000);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hhash);
CryptCreateHash(hProv,0x8004,NULL,NULL,&hHash);
005F9DFE:
CryptHashData(hhash,passwdbuf,0x12,NULL);passwdbuf是小寫的passwd緩沖區,然後附加一個KEY,如上例子就是對
{'1','2''3''4''5''6',0x17,0x51,0x85,0x7F}這樣的一個字串進行HASH加密
CryptHashData(hHash,PASSWDBUF,0x12,NULL);PASSWDBUF是大寫的passwd緩沖區,然後附加一個KEY
005F9E3E:
CryptGetHashParam(hhash,2,&passwdout,&outlen,0);取出passwdbuf是小寫的passwd的加密值
CryptGetHashParam(hHash,2,&PASSWDOUT,&OUTLEN,0);取出passwdbuf是大寫的passwd的加密值
這兩個相加就是真正的資料庫中的PASSWORD加密欄位
為什麼說以上方法是脆弱的呢?其實其真正的加密長度生成只有20個位元組。
小寫口令的HASH1+大寫口令的HASH1拼接的40位HASH值的安全度還不如一個直接20位的HASH值來得安全。因為大家都知道這兩個值的因果關系,
提供給了解密者更多的信息。
如因為其演算法一樣,如果HASH1=HASH2,就可以判斷口令肯定是未使用字母,只使用了數字和符號的口令,如上取出的123456口令的HASH,兩個HASH完全相等。
就是使用了字母,其知道補充的KEY,演算法,兩個加密字串的關系,其解應該也是大大的簡化了。
當然我沒研究過加密演算法,只是感覺上這種加密方式真是不安全,呵呵,希望解密演算法的高手指點。
⑹ sqlserver因為logon觸發器登錄不上去了.求助
將在每100毫秒時使用1毫秒的CPU時間來對redis的hash表進行重新hash,可以降低內存的使用。當你的使用場景中,有非常嚴格的實時性需要,不能夠接受Redis時不時的對請求有2毫秒的延遲的話,把這項配置為no。
⑺ 揭秘SQL Server 2014有哪些新特性
1、內存資料庫
在傳統的資料庫表中,由於磁碟的物理結構限制,表和索引的結構為B-Tree,這就使得該類索引在大並發的OLTP環境中顯得非常乏力,雖然有很多辦法來解決這類問題,比如說樂觀並發控制,應用程序緩存,分布式等。但成本依然會略高。而隨著這些年硬體的發展,現在伺服器擁有幾百G內存並不罕見,此外由於NUMA架構的成熟,也消除了多CPU訪問內存的瓶頸問題,因此內存資料庫得以出現。
內存的學名叫做RandomAccess Memory(RAM),因此如其特性一樣,是隨機訪問的,因此對於內存,對應的數據結構也會是Hash-Index,而並發的隔離方式也對應的變成了MVCC,因此內存資料庫可以在同樣的硬體資源下,Handle更多的並發和請求,並且不會被鎖阻塞,而SQLServer 2014集成了這個強大的功能,並不像Oracle的TimesTen需要額外付費,因此結合SSDAS Buffer Pool特性,所產生的效果將會非常值得期待。
SQLServer內存資料庫的表現形式
在SQL Server的Hekaton引擎由兩部分組成:內存優化表和本地編譯存儲過程。雖然Hekaton集成進了關系資料庫引擎,但訪問他們的方法對於客戶端是透明的,這也意味著從客戶端應用程序的角度來看,並不會知道Hekaton引擎的存在。如圖1所示。
圖8.內存優化表+本地編譯存儲過程
因此不難看出,內存優化表+本地編譯存儲過程有接近幾十倍的性能提升。
⑻ Oracle資料庫和Sql server資料庫各有什麼優缺點
1.Oracle跨平台,SQL
Server只能運行在Windows上,而Windows能夠安裝的硬體是有限的,如Sun的Sparc伺服器不能安裝Windows,一些大型機、小型機也只能裝UNIX,在這些高端機器上就只能跑Oracle了,這註定了Oracle就是高端資料庫,而SQL
Server呢,中低端。
2.Oracle真正實現了行級鎖,SQL
Server也宣稱實現了行級鎖,但你實際去試,如果不加索引,其實是不行的。
3.Oracle因為有多版本數據的技術,讀寫操作不會相互等待,雖然SQL
Server
2005學習Oracle增加了snapshot機制,從而也引進了多版本數據(MySQL也有多版本數據機制,不能說一定是學習Oracle),但是實際效果感覺就是2個版本的數據,隔離級別為read
committed時候,讀寫不再相互等待,但是把隔離設置為Serializable還是會產生讀寫相互等待。
4.Oracle的事務日誌歸檔相當方便,而SQL
Server要用事務日誌備份來實現,而且還要配置自動作業,啟動agent服務。
5.Oracle的數據字典豐富,使得DBA容易判斷資料庫的各種情況,雖然SQL
Server
2005學習了Oracle的數據字典的特點,但從數量及方便程度上還是相差太多。個人感覺這是Oracle最人性化的地方。
6.Oracle的PL/SQL比SQL
Server的T-SQL功能強大很多。
7.Oracle的觸發器比SQL
Server的種類多幾種。
8.oracle的備份恢復原理相當簡單明了,備份就在操作系統上拷貝數據文件好了,恢復呢,再拷貝回來,數據是舊的,不怕,應用重做日誌好了。SQLServer呢,雖然原理在本質上還是這些,但操作起來麻煩多了,麻煩到讓你體會不到其本質。
9.Oracle資料庫啟動可以有多個階段,使得DBA可以在不同的情況下,通過啟動到特定的階段解決一些特殊問題,而SQLServer只要服務一啟動,所有資料庫就都打開了。
10.SQLServer給人的感覺是簡單易用,但是我要說,如果你繼續向前走,就會發現SQLServer的體系結構相當復雜(注意我這里是說的復雜),大體還是沿襲的Sybase的體系結構,這種復雜結構,估計很難有根本性的改變,而Oracle呢,時間越長你越會覺得其體系結構嚴謹,雖然開始會感覺很難。我的一個比喻,SQLServer是傻瓜相機(就是那些一兩千的小數碼),Oracle是單反相機(40D,5D,D300),如果你是入門者,那用傻瓜相機好了,在各種環境下拍攝,基本都過得去,用單反,光圈、快門都要自己設定,反倒不如傻瓜相機的效果,如果你是高手了,那傻瓜相機就很難得心應手了。
11.Oracle的書籍一般都比較深,隨便一說就是一大批,EpertOracle、PracticalOracle8i、Cost-basedOracle,SQLServer呢,恐怕只有那套InsideSQLServer了,雖然SQLServer的書籍數量比Oracle的多的多(特別是在國內),但多數都是stepbystep的入門書。
12.對比SQL*Plus與sqlcmd(或2000的osql,6.5的isql),sqlcmd的功能是太簡陋,差得太多了。
13.SQLServer的最大優點就是和Windows結合緊密,易用,但是要注意事情都是兩面的,這些優點可能導致其致命的缺點,例如易用,使得搞SQLServer的人可以不求甚解,有時候不求甚解是沒問題的,但是有時候不求甚解可能會造成災難,特別是對搞資料庫的人來說。不好意思,本來要說SQLServer的優點呢,最後也成了缺點了。
⑼ SQLServer求優化
因為你的查詢使用的是 【or】,這樣雖然你的資料庫上建了索引但是實際上,資料庫並沒有用到這個索引建議,拆開寫。
如:
select * from sms_history
where servertel='059512345678'
and sendtime between '2009-08-01' and '2009-09-01'
union
select * from sms_history
where usertel='059512345678'
and sendtime between '2009-08-01' and '2009-09-01'
再在(servertel,sendtime)和(usertel,sendtime)分別建個索引,估計能快些。
---
以上,希望對你有所幫助。