NAT地址轉換原理全攻略

NAT轉換方式及原理

? ? ??在NAT的應用中,可以僅需要轉換內部地址(就是內部本地址轉換成內部全局地址),這是最典型的應用,如內部網絡用戶通過NAT轉換共享上網;也可以是僅需要轉換外部地址(就是外部全局地址轉換外部本地地址之間的轉換),如外部用戶要訪問位于內部網絡中的服務器;當然還可以同時轉換內部地址和外部地址。

為了方便理解本節后面所介紹的一些配置,現簡單介紹NAT的基本配置思路:

? ? ?(1)使用ip nat inside source(定義內部本地地址內部全局地址的映射),或者ip nat outside source(定義外部全局地址外部本地地址的映射),或者ip nat pool(定義一個內部全局地址池,或者一個外部本地地址池)命令定義一個IP地址映射。具體要使用哪個命令,如何配置地址映射要視所就用的NAT類型和地址轉換類型而定。可以是靜態地址映射,也可以是動態地址映射,或者端口地址映射(PAT);可以是內部地址轉換,也可以是外部地址轉換,或者內、外部地址同時轉換。

本節為了方便介紹,僅以靜態NAT轉換為例進行介紹,所以在下面各小節中僅使用了ip nat inside source?static,或者ip nat outside source?static命令。

? ? ??(2)使用ip nat inside命令指定內部接口,使用ip nat outside命令指定外部網絡接口。

6.2.1 NAT基本IP地址轉換原理

? ? ??總體來說,NAT進行地址轉換的過程就是“本地地址”與“全局地址”之間的轉換過程,無論數據包是從內部網絡發往外部網絡,還是從外部網絡發往內部網絡。不同的只是本地地址和全局地址所對應的網絡不同,以及數據包重新封裝的源和目的地址不同。具體如圖6-8所示。這個過程是通過NAT中的本地址與全局地址映射條目來實現的,所以事先要在NAT路由器上配置這樣的映射條目。

?

?

6-8? NAT基本地址轉換原理

? ? ??當內部網絡用戶訪問外部網絡時,所進行的是“內部本地地址”和“內部全局地址”之間的轉換

?

NAT路由器接收到來自內部網絡主機發送的數據包時,其源IP地址(SA)為“內部本地地址”,目的IP地址(DA)為“外部本地地址”。當數據包被轉發到外部網絡時,數據包的源IP地址(SA)就會轉變為“內部全局地址”,而目的IP地址(DA)被轉變為“外部全局地址”。也就是把數據包的所有源IP地址(SA)和目的IP地址(DA)全部由本地地址轉換為全局地址。如圖6-9上部分數據包IP地址轉換示意圖。

相反,當外部網絡用戶訪問內部網絡時,所進行的是“外部本地地址”和“外部全局地址”之間的轉換

? ? ??在NAT路由器接收到來自外部網絡主機發送的數據包時,其源IP地址(SA)就是“外部全局地址”,目的IP地址(DA)就是“內部全局地址”。相當于由內部網絡向外部網絡發送數據包時數據包中的源IP地址(SA)和目的IP地址(DA)的互換。而當數據包被路由器轉發到本地網絡時,源IP地址(SA)被轉變為“外部本地地址”,目的IP地址(DA)被轉變為“內部本地地址,也相當于由內部網絡向外部網絡發送數據包時數據包中的源IP地址(SA)和目的IP地址(DA)的互換。如圖6-9下部分數據包IP地址轉換示意圖。

6-9 NAT基本IP地址轉換原理

? ? ??以上是從總體上介紹NATIP地址轉換原理的,實際NAT應用有時并不需要對源IP地址和IP地址進行全面替換,僅需要對源IP地址或者僅需要對目的IP地址進行轉換即可達到所需的目的。下面予以介紹。

6.2.2 內部地址NAT轉換原理

? ? ??多數情況下使用NAT的目的就是為了使內部網絡中的多個用戶能使用一個注冊IP地址訪問外部網絡,所以僅需要配置內部地址NAT轉換。即通過ip nat inside source命令實現“內部本地地址”到“內部全局地址”之間的轉換(既可以采用靜態NAT方式實現,也可以采取動態NAT方式實現),只需要定義內部本地址與內部本局地址的映射。

6-10是一個簡單的NAT轉換示例。要實現以下目的:當NAT路由器的內部網絡s0接口上接收到一個源地址為內部本地地址10.10.10.1,目的IP地址為外部本地地址171.16.68.1的數據包時,在轉發到s1接口時,原來數據包源地址的內部本地地址10.10.10.1被轉換成內部全局地址171.16.68.5,但目的地址不變,然后繼續發送。在這個過程中,所進行的只是數據包中源IP地址的轉換,由內部本地地址向內部全局地址轉換,且只是內部地址之間的轉換。

6-10??簡單的NAT轉換示例

? ? ??相反,當在NAT路由器的外部網絡接口s1上接收源地址為172.16.68.1外部本地地址,目的地址為內部全局地址172.16.68.5的外部服務器響應數據包時,目的地址將被轉換成10.10.10.1這個內部本地地址,然后繼續發送。在這個過程中,所進行的只是數據包中目的IP地址的轉換,由內部全局地址向內部本地地址轉換,也只是內部地址之間的轉換。

? ? ? 下面僅以靜態NAT轉換方式為例介紹內部地址轉換的配置步驟,詳細的NAT配置方法將在本章后面具體介紹。

? ? ?(1)使用ip nat inside source static全局配置命令啟用基于內部源IP地址的靜態NAT IP地址轉換。也就是定義內部本地地址和內部全局地址,使它們之間形成一一對應的映射關系。

Router(config)#ip nat inside source static?10.10.10.1 171.16.68.5??? !---?在內部本地地址10.10.10.1與內部全局地址171.16.68.5之間建立靜態NAT映射關系,使內部網絡主機知道要以171.16.68.5這個地址到達外部網絡主機

? ? ?(2)使用以下兩條語句配置路由器的s0NAT的內部網絡接口。

Router(config)#interface?s0??? !---??進入s0串口配置模式

Router(config-if)#ip nat inside??? !---?把s0串口指定為內部網絡接口

? ? ?(3)使用以下兩條語句配置路由器的s1NAT的外部網絡接口。

Router(config)#interface?s1??? !---?進入s1串口配置模式

Router(config-if)#ip nat outside?? !---?把s1串口指定為外部網絡接口

? ? ?(4)使用show ip nat translations特權模式命令驗證上述進行的路由器NAT配置。輸出信息中顯示以上配置的NAT條目配置為:內部本地地址為10.10.10.1,內部全局地址為171.16.68.5。這與上面的配置是一致的,證明配置是成功的。

Router#show ip nat translations?? !---?在特權模式下顯示當前路由器NAT配置

?

Pro???? Inside global????? Inside local?????? Outside local????? Outside global

---???? 171.16.68.5??????? 10.10.10.1??????????? ---???????????????? ---

? ? ??此時如果對外部網絡目的主機進行ping操作,就會有數據包從內部網絡轉發到外部網絡。然后再在路由器特權模式下執行show ip nat translations命令,顯示的NAT信息如下。多了一條icmp協議類型數據包(執行ping操作后加的)顯示,但因為此時沒有配置外部網絡的本地地址和全局地址,所以顯示的外部本地地址和外部全局地址都是一樣的,都是ping操作目的主機地址171.16.68.1

Router#show ip nat translations

?

Pro?????? Inside global????????? Inside local??????? Outside local????? Outside global

icmp???? 171.16.68.5:15???????? 10.10.10.1:15?????? 171.16.68.1:15???? 171.16.68.1:15

---?????? 171.16.68.5??????????? 10.10.10.1???????????? ---???????????????? ---

? ? ??通過以上配置后,從內部網絡發往外部網絡的數據包只是源地址(SA)將在經過路由器后進行轉換(由內部本地地址10.10.10.1轉換成內部全局地址171.16.68.5),但目標地址(DA)不變,但從外部網絡發往內部網絡的應答數據包的源地址沒有改變,只是經過路由器后的數據包目的地址發生了轉換(由內部全局地址172.16.68.5轉換成內部本地地址10.10.10.1),但源地址(SA)不變。因為此時還沒有為NAT路由器配置外部網絡的本地地址和全局地址轉換。

? ? ??此時,數據包在內、外部網絡中的源地址、目的地址的轉換方式參如圖6-11所示。

6-11內部地址NAT轉換示例

? ? ??【經驗之談】在內部地址的NAT轉換中,無論數據包來自哪里,數據包中地址變化的只是內部地址之間的轉換。但要注意,地址變化所對應的是源地址,還是目的地址是要看數據包是來自內部網絡,還是來自外部網絡:如果是來自內部網絡,轉換是源地址;如果是來自外部網絡,轉換的是目的地址。

6.2.3 外部地址NAT轉換原理

? ? ??當公司服務器位于內部網絡,使用內部網絡私有IP地址,為了方便外部網絡用戶對內部網絡服務器進行訪問,則需要使用ip nat outside source命令配置“外部全局地址”與“外部本地地址”之間的轉換(既可以采用靜態NAT方式實現,也可以采取動態NAT方式實現)。外部地址NAT轉換與上節介紹的內部地址NAT轉換是相反的,它僅需要定義外部地址(包括外部本地地址和外部全局地址)。

? ? ??下面同樣以圖6-10所示的示例進行介紹。本示例要實現的目的是:當NAT路由器外部網絡接口s1接收到來自外部網絡用戶發送的源IP地址為外部全局地址171.16.68.1,目的地址為外部本地地址10.10.10.1的數據包在被路由器轉發到s0接口時,數據包中的源IP地址轉變為外部本地地址10.10.10.5(即由外部全局地址轉換成外部本地地址),目的IP地址不變,即也只是源IP地址的轉換;而由內部網絡用戶發送的響應數據包中,卻只是目的IP地址(即由外部本地地址轉換為外部全局地址)的轉換,源IP地址不變。

下面僅以靜態NAT轉換方式為例介紹外部地址NAT轉換的配置步驟,詳細的NAT配置方法將在本章后面具體介紹。

? ? ??(1)使用ip nat outside source static全局配置命令啟用基于外部源IP地址的靜態NAT IP地址轉換。也就是定義外部全局地址和外部本地地址之間的映射關系。

Router(config)#ip nat outside source static?171.16.68.1 10.10.10.5???? !---?在外部全局地址171.16.68.1與外部本地地址10.10.10.5之間建立靜態NAT轉換關系,使外部網絡主機知道要以10.10.10.1這個地址到達內部網絡主機

? ? ??(2)使用以下兩條語句配置路由器的s0作為NAT的內部網絡接口。

Router(config)#interface?s0

Router(config-if)#ip nat inside

? ? ??(3)使用以下兩條語句配置路由器的s1作為NAT的外部網絡接口。

Router(config)#interface?s1

Router(config-if)#ip nat outside

? ? ?【注意】對于特定的NAT網絡來說,路由器上的內、外部網絡接口是固定的,不會隨著通信方向的改變而改變。如在上節介紹的內部地址的NAT轉換示例中,我們同樣是把s0接口作為內部網絡接口,s1接口作為外部網絡接口。

? ? ?(4)使用show ip nat translations特權模式命令驗證上述進行的路由器NAT配置。從中可以看出,此時NAT的外部本地地址為10.10.10.5,外部全局地址為171.16.68.1。這與上面的配置是一致的,證明配置是成功的。

Router#show ip nat translations

?

Pro??? Inside global????????? Inside local????????? Outside local????? Outside global

???????? --- ---?????????????? ????---?????????????? 10.10.10.5????????? 171.16.68.1

? ? ??同樣,如果此時執行一個從外部網絡主機(171.16.68.1)到內部網絡主機(10.10.10.1)的ping操作,然后再在路由器特權模式下執行show ip nat translations命令,則顯示如下結果。因為此時僅配置了外部本地地址和外部全局地址,所以結果中顯示的內部本地地址和全局地址都是一樣的,都是ping操作目的主機地址10.10.10.1

Router#show ip nat translations

?

Pro??????? Inside global?????? Inside local???????? Outside local??????? Outside global

???????????? --- ---???????????? ---??????????????? 10.10.10.5?????????? 171.16.68.1

icmp?????? 10.10.10.1:37?????? 10.10.10.1:37????? 10.10.10.5:37??????? 171.16.68.1:37

? ? ??與上節介紹的僅配置內部地址相反,此處從外部網絡發往內部網絡的數據包的源IP地址(SA)將在經過路由器后進行轉換(由外部全局地址171.16.68.1轉換成外部本地地址10.10.10.5),但目標地址(DA)不變;但從內部網絡發往外部網絡的響應數據包的源IP地址沒有改變,只是經過路由器后的數據目的IP地址發生了改變(由外部本地地址10.10.10.5轉換成外部全局地址171.16.68.1)。因為此時還沒有為NAT路由器配置內部本地地址和內部全局地址轉換。此時,數據包在內、外部網絡中的源IP地址、目的IP地址的轉換方式如圖6-12所示。

? ? ?【經驗之談】在僅進行外部地址NAT轉換時,無論數據包來自哪里,數據包中地址變化的只是外部地址之間的轉換。同樣也需注意,地址變化所對應的是源IP地址,還是目的IP地址是要看數據包是來自內部網絡,還是來自外部網絡:如果來自內部網絡,轉換是目的IP地址;如果來自外部網絡,轉換的是源IP地址。這與前面的內部地址NAT轉換是對應相反的。

圖6-12外部地址NAT轉換示例

6.2.4 內/外部地址NAT轉換原理

? ? ?下面介紹同時進行內、外部地址NAT轉換原理及基本配置步驟。它需要同時使用ip nat inside source命令定義“內部全局地址”與“內部本地地址”之間的轉換,及使用ip nat outside source命令定義“外部全局地址”和“外部本地地址”之間的轉換(既可以采用靜態NAT方式實現,也可以采取動態NAT方式實現)。這樣,無論數據包是從哪個方向發送的,數據包中的源地址和目的地址都將同時發生變化。主要應用于重疊網絡(Overloading Network)中的NAT應用中。具體配置方法將在本章6.6節介紹。

? ? ??同樣以圖6-10所示的基本網絡結構為例進行介紹。在下面的示例中,通過配置可以實現:當NAT路由器內部網絡接口s0接收到來自內部網絡,源IP地址為內部本地地址10.10.10.1,目的IP地址為外部本地地址10.10.10.5的數據包,在轉發到s1接口前,將這個數據包中的源IP地址將轉換成內部全局地址171.16.68.5,目的IP地址將被轉換成外部全局地址171.16.68.1

NAT路由器外部接口s1接收到來自外部網絡,源IP地址為外部全局地址171.16.68.1,目的地址為內部全局地址172.16.68.5的數據包時,將源IP地址轉換成外部本地地址10.10.10.5,將目的IP地址將被轉換成內部本地址10.10.10.1

? ? ??下面僅以靜態NAT轉換方式(可以采用動態NAT轉換方式)為例介紹內、外部地址同時轉換的配置步驟,詳細的靜態,或者動態NAT轉換配置方法將在本章后面具體介紹。

Router(config)#ip nat inside source static?10.10.10.1 171.16.68.5??? !---?在內部本地地址10.10.10.1與內部全局地址171.16.68.5之間建立靜態NAT映射關系,使內部網絡主機知道要以171.16.68.5這個地址到達外部網絡主機

Router(config)#ip nat outside source static?171.16.68.1 10.10.10.5??? !---?在外部全局地址171.16.68.1與外部本地地址10.10.10.5之間建立靜態NAT映射關系,使外部網絡主機知道要以10.10.10.5這個地址到達內部網絡主機

Router(config)#interface?s 0

Router(config-if)#ip nat inside

Router(config-if)#end

Router(config)#interface?s 1

Router(config-if)#ip nat outside

Router(config-if)#end

Router(config)#?end

Router#show ip nat translations

?

Pro?? Inside global????? Inside local???????? Outside local??????? Outside global

???????? --- ---?????????? ---???????????????? 10.10.10.5?????????? 171.16.68.1

?????? 171.16.68.5??????? 10.10.10.1 ???????????---??????????????????? ---

? ? ??同樣,如果此時分別執行一個從內部主機到外部主機,以及從外部主機到內部主機的ping操作,然后再在路由器特權模式下執行show ip nat translations命令,則顯示如下結果。因為此時同時配置了內、外部本地地址和全局地址,所以結果中顯示了兩條NAT配置項,分別顯示了與外部網絡和內部網絡中的本地地址和全局地址轉換對應的ping操作icmp消息:與外部本地地址和全局地址對應的Ping操作ICMP消息中顯示內部網絡中的本地地址和全局地址是一樣的,而與內部網絡本地地睛和全局地址對應的Ping操作ICMP消息中顯示外部網絡中的本地地址和全局地址是一樣的,都是對應的Ping操作目的主機地址。

Router#show ip nat translations

?

Pro Inside global????? Inside local?????? Outside local????? Outside global

---????? ---??????????????? ---????????? 10.10.10.5?????? 171.16.68.1

icmp 10.10.10.1:4????? 10.10.10.1:4?????? 10.10.10.5:4?????? 171.16.68.1:4

icmp 171.16.68.5:39??? 10.10.10.1:39????? 171.16.68.1:39???? 171.16.68.1:39

---? 171.16.68.5?????? 10.10.10.1?????????? ---???????????????? ---

? ? ??經過以上配置后,數據包發送(無論是從哪個方面發送的)時不僅源IP地址會發生變化,目標IP地址也會同時發生變化,如圖6-13所示。

? ? ?在由內部網絡向外部網絡發送的數據包中,源IP地址是由內部本地地址10.10.10.1)轉換成內部全局地址172.16.68.5),目的IP地址由外部本地地址10.10.0.5)轉換成外部全局地址171.16.68.1);在由外部網絡向內部網絡發送的數據包中,源IP地址是由外部全局地址171.16.68.1)轉換成外部本地地址10.10.0.5),目的IP地址由內部全局地址172.16.68.5)轉換成內部本地地址10.10.10.1)。兩個方向的數據包中的源IP地址和目的IP地址的轉換分別如圖6-14和圖6-15所示。

圖6-13??同時配置了內、外部地址轉換后的NAT轉換示例

圖6-14?數據包從內部網絡發到外部網絡時的地址轉換方式 圖6-15?數據包從外部網絡發到內部網絡時的地址轉換方式

? ? ??從圖6-14和圖6-15可以看出,圖6-14中的源IP地址轉換過程恰好是圖6-15中的目的地址轉換的反過程。同理,圖6-14中的目的IP地址轉換過程恰好是圖6-15中的源IP地址轉換的反過程

? ? ??另外,經過細心分析我們可以發現,在由內部網絡發往外部網絡的數據包中所進行的地址轉換都是由本地地址轉換為全局地址,也就是都是由內部網絡一側的地址向外部網絡一側的地址轉換;相反,在由外部網絡發往內部網絡的數據包中所進行的地址轉換都是由全局地址轉換為本地地址,也就是都是由外部網絡一側的地址向內部網絡一側的地址轉換。

轉載于:https://www.cnblogs.com/zhangyanhai/p/3364636.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/376357.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/376357.shtml
英文地址,請注明出處:http://en.pswp.cn/news/376357.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

通過setTimeout來取消因大量計算造成的網頁卡頓

js是單線程的,所以有些大量計算的操作會占用線程資源,導致頁面卡住。 今天遇到這樣一個場景,選擇一個下拉框之后,對數據進行篩選,這個過程中有大量計算,點了selecte的option之后,option不隱藏&a…

160 - 47 DueList.2

環境: Windows xp sp3 工具: Ollydbg exeinfope 0x00 查殼 無殼的程序 0x01 分析 運行后說需要keyfile,那就創建一個。 OD載入找找看需要的keyfile叫什么名字 00401000 > $ 6A 00 push 0x0 …

如何解決Visual Studio2012 與此版本的Windows不兼容

解決方案: http://www.microsoft.com/zh-CN/download/details.aspx?id36020 下載更新轉載于:https://www.cnblogs.com/awodefeng/p/3373343.html

160 - 48 DueList.3

環境: Windows xp sp3 工具: Ollydbg exeinfope 0x00 查殼 無殼的程序 0x01 分析 應該就是選上某個或多個框后點Check就能成功的,那應該就是不同框對應不同的值咯。旁邊還有個提示:建議使用資源編輯器。 直接OD載入&#x…

為什么django+mongo在windows上session能夠獲取到,同樣的程序在linux上就會報session的變量錯誤,keyerror?...

settings:SESSION_ENGINE django.contrib.sessions.backends.cache 其它地方:正常存取值。request.session["mm"]“MM” 轉載于:https://www.cnblogs.com/angelfeeling/p/4211261.html

圖片上傳 關于壓縮的問題

圖片上傳 關于壓縮的問題 如果不壓縮,圖片的數據量非常大,很影響上傳速度 http://blog.csdn.net/jinglijun/article/details/8751269 http://blog.csdn.net/jinglijun/article/details/8751220轉載于:https://www.cnblogs.com/kevingod/p/3375507.html

160 - 49 DueList.4

環境: Windows xp sp3 工具: ollydbg exeinfope 0x00 查殼 無殼的程序 0x01 分析 運行后隨便輸入點東西, OD載入: 00401127 > /6A 00 push 0x0 ; /lParam 0 00401129 …

java中的codereview

關于codereview,在平時的開發中,經常忽略的環節,參照目前介紹寫好代碼的幾本書和之前掉進的坑,做了一個總結,分享出來。 為什么要做 通過review規避一些代碼層面的問題提升可讀性,…

linux下開機啟動腳本的方法

1.準備好要隨機啟動的程序,例如 /root/test.sh 。確保其可執行。 2.在目錄 /etc/init.d/ 下編寫控制腳本 test 。 #!/bin/sh ### BEGIN INIT INFO # Provides: test # Required-Start: $remote_fs # Required-Stop: $remote_fs # Default-Start: …

理解i-node

原文鏈接:http://www.ruanyifeng.com/blog/2011/12/inode.html 感覺講得挺好,便做個記錄.轉載于:https://www.cnblogs.com/malware/p/3377616.html

MD5算法詳解

0x00 前言 MD5是一種哈希算法,用來保證信息的完整性。 就一段信息對應一個哈希值,且不能通過哈希值推出這段信息,而且還需要保證不存在任意兩段不相同的信息對應同一個哈希值。不過MD5算法算出來的值也就16個字節(16*8128&#x…

我的2015年讀書計劃,每兩周讀完一本書!

近日看到一篇文章,說Facebook CEO 馬克扎克伯格給自己的2015年定下了一個新的挑戰,每兩周就要讀完一本書(傳送門:戳這里)。想了一下,我自己也很久沒看書了,所以今年要改變一下,給自己…

書到用時方恨少

以前覺得的自己的英語還行,四級,六級的什么早就在讀書的時候過了, 工作以后,陸陸續續也一直用著英語。 最近發現和老外私下聊天的時候,詞匯量嚴重不足。不明白老外在說什么,一起跟著傻笑。 活到老&#xff…

kettle7.1 右上角不顯示connect

kettle7.1右上角不顯示connect,就無法使用資源庫了。 總結一下解決方法: 1.可能是jdk版本不對,最好使用1.8。原本是10.1,不顯示connect,后來裝了個1.8后就能顯示了。記得是要改環境,javac -version 能顯示…

基于XMPP協議的aSmack源碼分析

在研究如何實現Pushing功能期間,收集了很多關于Pushing的資料,其中有一個androidnp開源項目用的人比較多,但是由于長時間沒有什么人去維護,聽說bug的幾率挺多的,為了以后自己的產品穩定些,所以就打算自己研…

[Reverse] - 百度杯”CTF比賽 2017 二月場-CrackMe-1

環境:Windows XP 工具: IDA OD EXEINFOPE 0x00 查殼 0x01 分析 拖入OD,字符串查找看一看。 跟進去看就可以知道關鍵call了 0040196A . 48 dec eax 0040196B . 0F85 C4000000 jnz CrackMe1.00401A35 00401971 . …

【DeepLearning】Exercise:Learning color features with Sparse Autoencoders

Exercise:Learning color features with Sparse Autoencoders 習題鏈接:Exercise:Learning color features with Sparse Autoencoders sparseAutoencoderLinearCost.m function [cost,grad,features] sparseAutoencoderLinearCost(theta, visibleSize, hiddenSize,…

win7 64位系統下 PL/SQL無法連接的問題

第一步:下載oracle客戶端 由于 PLSQL Developer 沒有64位版本,所以在64位系統上運行該程鏈接64位Oracle時就會報錯,筆者為這個問題糾結了好幾天,后來通過請教Google 動手實踐,終于搞定了這個問題。現在把筆者解決的過…

SQL2008R2 express版本不支持維護計劃

SQL2008R2 express版本不支持維護計劃轉載于:https://www.cnblogs.com/toSeeMyDream/p/4218626.html

SHA1算法詳解

0x00 前言 SHA1算法也是哈希算法的一種,只要理解了MD5算法,SHA1也很快就能理解。 MD5算法可以參考:MD5算法詳解 MD5算法得出的MD5值長度為16個字節(8*16128位) SHA1算法得出的SHA1值長度為20個字節(8*2…