短址源碼
A. 請問如何屏蔽網頁中的查看源文件(源代碼)
眾所周知,要保護一個頁面,最基礎的就是要屏蔽右鍵。而現在網頁上用得最多的是function click(),即下面這段代碼:
〈script〉
function click(){
if(event.button==2){
alert( 』本網站歡迎您 !!』);
}
}
document.onmousedown=click
〈/script〉
但是這種屏蔽方法的破解方法也是眾所周知的。那就是連續單擊滑鼠左鍵和右鍵便又可以看到右鍵菜單了。但是,我見過一種很好的屏蔽右鍵的方法。它的原理和上面所說的不同。它並不是用JS來編寫的腳本,而是利用定義網頁屬性來起到限制的作用。而且,在屏蔽中應該盡量的避開使用JS腳本。因為只要瀏覽者把IE里的java script腳本禁用了。那麼一切屏蔽都白費。
那麼繼續說那種通過修改網頁屬性的屏蔽右鍵的方法。這種方法利用了HTML里的〈body〉來作修改,它只有以下短短的一行代碼:
〈body oncontextmenu=self.event.returnvalue=false〉
這里,定義了oncontextmenu。使得右鍵的值為false,起到了屏蔽右鍵的效果。現在,再試試看剛才的破解方法,已經不行了。左右鍵連擊已經不能再打開右鍵菜單。不但是這個,再試試看其他的方法。無論你怎樣的亂點,右鍵都沒有用。因為在這個網頁里,右鍵已經不存在了。對於一個不存在的功能鍵,你又能做什麼呢?
但是,屏蔽了右鍵還不能解決問題。如果我要復制一段文字,或是一張圖片。那麼,把它選中後用ctrl+C 再用 ctrl+V不就可以復制粘貼了嘛。對了,接下來要講的,就是屏蔽左鍵(什麼?屏蔽左鍵?那這個網頁不就差不多廢掉了?別急,沒說完呢,左鍵只有一項功能是很討厭的)的選定功能。
那麼,如上所說,用JS來屏蔽是沒有用的,治標不治本的。那麼,我們就還用網頁的最基礎的語言:HTML來定義吧。還是老招數,定義〈body〉。這次用的參數是:onselectstart。就是左鍵選定的參數。代碼如下:
〈body onselectstart="return false"〉
這樣,左鍵選定功能就給輕易屏蔽了。原理和上面的一樣。現在,再用你的左鍵選擇任意內容把,已經沒有用了。自然也不能ctrl + C,ctrl +V了。那麼,現在我們來把這兩部分合並起來。徹底控制左右鍵!:
〈body oncontextmenu=self.event.returnvalue=false onselectstart="return
false"〉
現在,左右鍵的問題總算是解決了吧。
好,現在我們來看另一個問題。大家都知道,在IE瀏覽器的菜單欄里的「查看」項里。有一個「查看源代碼」選項。這么一來,雖然我們屏蔽了右鍵里的查看源代碼。但是,只要用菜單欄里的查看源代碼,還是可以看到源代碼的。這可怎麼辦呢?
我最初的想法是用框架來避開源代碼的查看。也就是說,只要一個網頁是嵌在框架里的,那麼在菜單欄里選擇查看源代碼查看到的只是框架網頁的源代碼。一般格式如下:
〈html〉
〈head〉
〈meta HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=gb2312"〉
〈title〉本網站標題〈/title〉
〈/head〉
〈frameset rows="47,*" framespacing="0" border="0"
frameborder="0"〉
〈frame name="header" scrolling="no" noresize target="main"
src="top.htm"〉
〈frame name="main" src="main.htm" scrolling="auto"
target="_self"〉
〈noframes〉
〈body〉
〈p〉此網頁使用了框架,但您的瀏覽器不支持框架。〈/p〉
〈/body〉
〈/noframes〉
〈/frameset〉
〈/html〉
這樣看起來對方是沒有直接看到你的源代碼了。但是,如果一個人要看你的源代碼,那他八成是能看懂的。如果懂一點HTML的話,都能看出這兩句是什麼意思:
〈frame name="header" scrolling="no" noresize target="main"
src="top.htm"〉
〈frame name="main" src="main.htm" scrolling="auto"
target="_self"〉
這兩句的意思就是:在header(也就是網頁頂部)處引用相對路徑下的top.htm網頁文件。而在main(也就是占據網頁大部分頁面的位置)處引用相對路徑下的main.htm網頁文件。就這兩點是關鍵的,其他就不作解釋了,大家也都懂的。而上面所講的利用框架來隱藏源代碼的方法就是將要顯示頁面放在main部分。而將header部分的大小設為0。但是這樣一來,利用菜單欄里的查看源代碼,還是能查看到框架網頁的源代碼。只要看到這兩句,就知道我們前面用的手法了。也就是說,只要將框架網頁的名字改為目標網頁,便可以用相同的方法直接看到目標網頁的源代碼了。如:框架網頁:http://www.sina.com.cn/red.htm的源代碼如上,就可以改為http://www.sina.com.cn/main.htm。這樣便可直接瀏覽被保護網頁,屏蔽源代碼的效果還是沒有達到。
得到的永遠比失去的多!
2006-4-15 18:55 #1
UID 29169
會員 狒狒
用戶組 版主 [查看詳情]
性別 : 男
閱讀許可權 : 16
來自 : 湖北 武漢
狀態
帖子 555 [查看詳情]
精華 3
主題 96
回復 459
積分策略 積分 : 607
現金 1166 MMB 存款 1000 MMB
星級
失蹤 0 天 [查看詳情]
注冊 51 天
注冊 2006-3-9
| 今日免費申請會員!
--------------------------------------------------------------------------------
那麼,有些人就會想到,如果對方看不到框架網頁的源代碼。又何談去直接打開被保護網頁?對,這就是接下來我要講的。如果要一個頁面的菜單欄內的查看源代碼失去效用。那最簡單的辦法就是去掉菜單欄。而這一點是可以通過彈出窗口來實現的。之所以不選用超鏈接打開無菜單欄窗口是因為那樣會暴露目標地址,瀏覽者可以直接在瀏覽器中敲入地址,而繞過這個屏蔽的菜單欄。要使用超鏈接打開無菜單欄窗口,就必須在一個已受到源代碼屏蔽保障的網頁中使用相關鏈接。
那麼,我們就看看如何利用彈出窗口來去掉菜單欄。其實,我們要做的,就是讓目標網頁在一個廣告條中打開。這個代碼幾乎每個大型網站都會有的。代碼如下:
〈script〉
〈!--
window.open("red.htm", "red", "resizable=yes,width=500,height=300");
--〉
〈/script〉
這里,在window.open後的括弧里的第一個參數就是彈出窗口所顯示的網頁的位置,這里例子里是先對位置下的red.htm網頁文件。這時運行便會談出一個顯示有red.htm的無菜單欄的窗口。好,我們的目的達到了。但是,這個窗口有一個缺陷,就是沒有滾動條。因為在談出窗口的語句:window.open里並沒有關於滾動條的參數,(或是我不知道?歡迎高手來信指出),所以這里打開的網頁建議只做成網頁的導航頁。
但是,用以上方法取消菜單欄,必須有一個第二方的網頁來作彈出的工作。那麼,這個用來彈出窗口的網頁又成為了一個問題的所在。舉例來說:假設,我們用一個index.htm來作彈出窗口的工作。也就是打開index.htm之後,會彈出red.htm的無菜單欄窗口。前面我們也提到了,如果知道了一個網頁的地址後,無論這個網頁是否隱藏在無菜單欄之下,你都能看到它的源代碼。那麼,不讓這個red.htm的地址暴露也就成了解決這個問題的關鍵。但是,只要這個index.htm被打開,就可以看到源代碼。但是,不妨反過來想想,如果我們把index.htm給關起來呢?只要在瀏覽者沒有來得及查看index.htm之前將它關閉,就能保住它的源代碼了。那麼,在這個index.htm里就有得做些文章了。
那就是,添加關閉網頁的代碼。
那麼,我們就可以用window.close來關閉窗口。代碼如下:
〈script〉
〈!--
window.open();
--〉
〈/script〉
那麼,現在我們把兩部分代碼合並起來。現在,得到的效果就是——直接有一個無菜單欄的窗口打開了。因為計算機的處理速度很快,如果我們將這兩段代碼緊接著寫在一起,那麼我們就只能看到新建的窗口。代碼如下:
〈script〉
〈!--
window.open("red.htm", "red", "resizable=yes,width=500,height=300");
window.close();
--〉
〈/script〉
而原來的窗口,已在我們無察覺的情況下關閉了。這樣,就別說查看該網頁的源代碼了。這里,加入上面源代碼的網頁起了一個跳板的作用。但是,在這里,我們要注意幾點。第一,用來做跳板的網頁不應該命名為index.htm。將它換一個名字,然後把默認首頁的名字改為更改過的名字。這樣,是瀏覽者能在輸入網之後便自動訪問該頁。而又不致讓對方知道該頁的名稱。如果不這樣做,就會導致對方猜測出該頁的位置。如:172.0.0.0/index.htm。這樣,就可以通過在瀏覽器中提交:View-Source:http://172.0.0.0/index.htm就可以看到該頁的源代碼了。
在屏蔽掉了菜單欄和工具欄之後,我們想,如果沒有了最上方的窗口條該多好呢?下面我們要做的事情,有前提,就是在上面所說的在利用跳板頁面打開一個無菜單欄的窗口之後。我們要做什麼呢?就是讓我們顯示網站內容的窗口只顯示內容,(是啊,網站不就是給別人瀏覽的嗎?要瀏覽器和windows的那麼多功能做什麼呀……)只要內容,其餘一律去掉。我們就可以通過一段java
script來完成。下面這段代碼就是用來定義無任何窗口特徵的代碼:
〈script〉
function open1(url){
newwin=window.open(url,』newwindow』,』fullscreen=1』)
newwin.resizeTo(800,600)
newwin.moveTo(screen.width/0-800,screen.height/0-600)
}
〈/script〉
其中,function open1(url)定義了超鏈接的寫法。所以,我們在寫鏈接的地址時,應該這樣寫:java script:open1(url)。比如我要打開一個無窗口特徵的新浪首頁就應該在文字或圖片的超鏈接里這樣寫:java
script:open1(『http:www.sina.com.cn』)。當然,括弧內也支持相對路徑。最後寫出來的格式應該是:
〈script〉
function open1(url){
newwin=window.open(url,』newwindow』,』fullscreen=1』)
newwin.resizeTo(800,600)
newwin.moveTo(screen.width/0-800,screen.height/0-600)
}
〈/script〉
〈body oncontextmenu=self.event.returnvalue=false onselectstart="return
false"〉
〈td width="100%"〉〈a href="java script:open1(』main.htm』),window.close()"〉〈img
border="0" src="pic/blank1.gif" style="position: absolute;
left: 556; top: 142" width="169" height="57"〉〈/a〉〈/td〉
〈/body〉
這樣,我們就達到了打開無窗口邊的網頁了。並且,在這個網頁中,會自動加入滾動條,這樣,就不會像前面那樣看不到下面的內容啦。
最後我們要做的工作,就是把每一頁,或者你認為重要的關鍵的頁面進行加密,就OK啦。怎樣對網頁的源代碼進行加密就不用我多說了吧?網上到處都有,可以用工具,也可以自己寫一個htm文件來轉換。加密軟體,我推薦「Batch
HTML Encryptor」,去google找吧。還有轉換加密網頁的代碼如下:
〈HTML〉〈HEAD〉〈TITLE〉網頁加密解密〈/TITLE〉
〈META http-equiv=Content-Type content="text/html; charset=gb2312"〉
〈META content="MSHTML 6.00.2600.0" name=GENERATOR〉〈!-- 大地軟體工作室--〉〈LINK
href="style.css" rel=stylesheet〉
〈META content="Microsoft FrontPage 4.0" name=GENERATOR〉
〈/HEAD〉
〈BODY bgColor=#ffffff leftMargin=0 topMargin=0 onload=initStyleElements()〉
〈DIV
style="LEFT: 139px; WIDTH: 106px; POSITION: absolute; TOP: 52px; HEIGHT:
36px"〉
〈TABLE cellSpacing=0 cellPadding=0 width=760 align=center border=0〉〈!--DWLayoutTable--〉
〈TBODY〉
〈TR〉
〈TD vAlign=top align=middle width=760 height=310〉
〈DIV align=center〉
〈H2〉
〈SCRIPT language=java script〉
〈!--
var i=0;
var ie=(document.all)?1:0;
var ns=(document.layers)?1:0;
function initStyleElements() /* Styles for Buttons Init */
{
var c = document.pad;
if (ie)
{
//c.text.style.backgroundColor="#DDDDDD";
c.compileIt.style.backgroundColor="#C0C0A8";
c.compileIt.style.cursor="hand";
c.select.style.backgroundColor="#C0C0A8";
c.select.style.cursor="hand";
c.view.style.backgroundColor="#C0C0A8";
c.view.style.cursor="hand";
c.retur.style.backgroundColor="#C0C0A8";
c.retur.style.cursor="hand";
c.clear.style.backgroundColor="#C0C0A8";
c.clear.style.cursor="hand";
}
else return;
}
/* Buttons Enlightment of "Compilation" panel */
function LightOn(what)
{
if (ie) what.style.backgroundColor = 』#E0E0D0』;
else return;
}
function FocusOn(what)
{
if (ie) what.style.backgroundColor = 』#EBEBEB』;
else return;
}
function LightOut(what)
{
if (ie) what.style.backgroundColor = 』#C0C0A8』;
else return;
}
function FocusOff(what)
{
if (ie) what.style.backgroundColor = 』#DDDDDD』;
else return;
}
/* Buttons Enlightment of "Compilation" panel */
function generate() /* Generation of "Compilation" */
{
code = document.pad.text.value;
if (code)
{
document.pad.text.value=』Compiling...Please wait!』;
setTimeout("compile()",1000);
}
else alert(』First enter something to compile and then press CompileIt』)
}
function compile() /* The "Compilation" */
{
document.pad.text.value=』』;
compilation=escape(code);
document.pad.text.value="〈script〉\n〈!--\ndocument.write(unescape(\""+compilation+"\"));\n//--〉\n〈\/script〉";
i++;
if (i=1) alert("Page compiled 1 time!");
else alert("Page compiled "+i+" times!");
}
function selectCode() /* Selecting "Compilation" for Copying */
{
if(document.pad.text.value.length〉0)
{
document.pad.text.focus();
document.pad.text.select();
}
else alert(』Nothing for be selected!』)
}
function preview() /* Preview for the "Compilation" */
{
if(document.pad.text.value.length〉0)
{
pr=window.open("","Preview","scrollbars=1,menubar=1,status=1,width=700,height=320,left=50,top=110");
pr.document.write(document.pad.text.value);
}
else alert(』Nothing for be previewed!』)
}
function uncompile() /* Decompiling a "Compilation" */
{
if (document.pad.text.value.length〉0)
{
source=unescape(document.pad.text.value);
document.pad.text.value=""+source+"";
}
else alert(』You need compiled code to uncompile it!』)
}
// --〉
〈/SCRIPT〉
〈BR〉〈B〉〈FONT color=#333333〉網頁HTML源代碼加密解密器〈/FONT〉〈/B〉〈/H2〉〈/DIV〉
〈TABLE cellSpacing=0 borderColorDark=#000000 cellPadding=10 width=750
align=center borderColorLight=#ffffff border=2〉
〈TBODY〉
〈TR〉
〈TD〉
〈DIV align=center〉〈BR〉將你的源代碼貼到編輯區域即可〈BR〉〈BR〉
〈TABLE cellSpacing=0 cellPadding=0 width="100%" border=0〉
〈TBODY〉
〈TR〉
〈TD width="100%"〉〈!-- Compilation Panel --〉
〈FORM name=pad method=post align="center"〉
〈DIV align=center〉〈TEXTAREA style="WIDTH: 95%; BACKGROUND-COLOR: #ebebeb"
name=text rows=11 cols=58〉〈/TEXTAREA〉
〈BR〉〈BR〉〈BR〉〈INPUT onmouseover=LightOn(this) onclick=generate() onmouseout=LightOut(this)
type=button value=加密 name=compileIt〉
〈INPUT onmouseover=LightOn(this) onclick=selectCode() onmouseout=LightOut(this)
type=button value=全選 name=select〉
〈INPUT onmouseover=LightOn(this) onclick=preview() onmouseout=LightOut(this)
type=button value=預覽 name=view〉
〈INPUT onmouseover=LightOn(this) onclick=uncompile() onmouseout=LightOut(this)
type=button value=解密 name=retur〉
〈INPUT onmouseover=LightOn(this) onmouseout=LightOut(this) type=reset value=清除
name=clear〉
〈/DIV〉〈/FORM〉〈!-- Compilation Panel --〉〈/TD〉〈/TR〉〈/TBODY〉〈/TABLE〉〈/DIV〉〈/TD〉〈/TR〉〈/TBODY〉〈/TABLE〉
〈DIV align=center〉〈BR〉〈/DIV〉
〈DIV align=center〉〈/DIV〉 〈/TD〉〈/TR〉〈/TBODY〉〈/TABLE〉
〈/DIV〉
〈DIV〉〈/DIV〉〈/BODY〉〈/HTML〉
總結一下……按我的思路,屏蔽網頁源代碼主要分為以下幾個步驟:
1. 做一個網頁跳板,彈出要保護的廣告條狀頁面,並將自身關閉,以避免泄露需保護網頁的地址。
2. 由於上述條件屏蔽了廣告條內網頁的源代碼,所以可以用這個網頁作為歡迎頁。
3. 在歡迎頁中,利用java script以超連接的形式來打開無窗口邊的新窗口顯示網站內容。
4. 對每一個頁面或者對重要的關鍵的頁面進行源代碼加密,為源代碼加一把鎖。(有些人說對源代碼進行加密沒有用,但是我覺得要使用另類點的加密方法就可以了,比如軟體的加密方法就很普通。但是用我自己寫的htm文件加密的源代碼,一般軟體是不能進行解密的。大家有興趣的話可以試試。)
5. 最後不得不提的就是windows網頁臨時文件夾了,那裡面會把源代碼紀錄的。但是不用怕,加入一種代碼,就可以使windows不下載網頁的源代碼,直接瀏覽。可以去找找。
有些東西要注意的:
1. 在文中所說的自動關閉網頁的語句:window.close()有一個弊病。就是會在關閉窗口之前詢問是否關閉窗口,如果選擇否的話目的還是達不到。
2. 以上一切都只對IE瀏覽器有效用,如果用別的瀏覽器來瀏覽,就有可能出現屏蔽不成功的現象。
3. 關於網頁源代碼屏蔽,一直以來是可望而不可及的。我只是把思路寫下來,具體實現,還是要靠大家自己研究的啦。
B. SpringBoot內置生命周期事件詳解 SpringBoot源碼(十)
SpringBoot中文注釋項目Github地址:
https://github.com/yuanmabiji/spring-boot-2.1.0.RELEASE
本篇接 SpringBoot事件監聽機制源碼分析(上) SpringBoot源碼(九)
溫故而知新,我們來簡單回顧一下上篇的內容,上一篇我們分析了 SpringBoot啟動時廣播生命周期事件的原理 ,現將關鍵步驟再濃縮總結下:
上篇文章的側重點是分析了SpringBoot啟動時廣播生命周期事件的原理,此篇文章我們再來詳細分析SpringBoot內置的7種生命周期事件的源碼。
分析SpringBoot的生命周期事件,我們先來看一張類結構圖:
由上圖可以看到事件類之間的關系:
EventObject 類是JDK的事件基類,可以說是所有Java事件類的基本,即所有的Java事件類都直接或間接繼承於該類,源碼如下:
可以看到 EventObject 類只有一個屬性 source ,這個屬性是用來記錄最初事件是發生在哪個類,舉個栗子,比如在SpringBoot啟動過程中會發射 ApplicationStartingEvent 事件,而這個事件最初是在 SpringApplication 類中發射的,因此 source 就是 SpringApplication 對象。
ApplicationEvent 繼承了DK的事件基類 EventObject 類,是Spring的事件基類,被所有Spring的具體事件類繼承,源碼如下:
可以看到 ApplicationEvent 有且僅有一個屬性 timestamp ,該屬性是用來記錄事件發生的時間。
SpringApplicationEvent 類繼承了Spring的事件基類 ApplicationEvent ,是所有SpringBoot內置生命周期事件的父類,源碼如下:
可以看到 SpringApplicationEvent 有且僅有一個屬性 args ,該屬性就是SpringBoot啟動時的命令行參數即標注 @SpringBootApplication 啟動類中 main 函數的參數。
接下來我們再來看一下 SpringBoot 內置生命周期事件即 SpringApplicationEvent 的具體子類們。
SpringBoot開始啟動時便會發布 ApplicationStartingEvent 事件,其發布時機在環境變數Environment或容器ApplicationContext創建前但在注冊 ApplicationListener 具體監聽器之後,標志標志 SpringApplication 開始啟動。
可以看到 事件多了一個 environment 屬性,我們不妨想一下,多了 environment 屬性的作用是啥?
答案就是 事件的 environment 屬性作用是利用事件發布訂閱機制,相應監聽器們可以從 事件中取出 environment 變數,然後我們可以為 environment 屬性增加屬性值或讀出 environment 變數中的值。
當SpringApplication已經開始啟動且環境變數 Environment 已經創建後,並且為環境變數 Environment 配置了命令行和 Servlet 等類型的環境變數後,此時會發布 事件。
監聽 事件的第一個監聽器是 ConfigFileApplicationListener ,因為是 ConfigFileApplicationListener 監聽器還要為環境變數 Environment 增加 application.properties 配置文件中的環境變數;此後還有一些也是監聽 事件的其他監聽器監聽到此事件時,此時可以說環境變數 Environment 幾乎已經完全准備好了。
可以看到 事件多了個 類型的 context 屬性, context 屬性的作用同樣是為了相應監聽器可以拿到這個 context 屬性執行一些邏輯,具體作用將在 3.4.4 詳述。
事件在 ApplicationContext 容器創建後,且為 ApplicationContext 容器設置了 environment 變數和執行了 的初始化方法後但在bean定義載入前觸發,標志ApplicationContext已經初始化完畢。
同樣可以看到 ApplicationPreparedEvent 事件多了個 類型的 context 屬性,多了 context 屬性的作用是能讓監聽該事件的監聽器們能拿到 context 屬性,監聽器拿到 context 屬性一般有如下作用:
ApplicationPreparedEvent 事件在 ApplicationContext 容器已經完全准備好時但在容器刷新前觸發,在這個階段 bean 定義已經載入完畢還有 environment 已經准備好可以用了。
ApplicationStartedEvent 事件將在容器刷新後但 ApplicationRunner 和 CommandLineRunner 的 run 方法執行前觸發,標志 Spring 容器已經刷新,此時容器已經准備完畢了。
ApplicationReadyEvent 事件在調用完 ApplicationRunner 和 CommandLineRunner 的 run 方法後觸發,此時標志 SpringApplication 已經正在運行。
可以看到 ApplicationFailedEvent 事件除了多了一個 context 屬性外,還多了一個 Throwable 類型的 exception 屬性用來記錄SpringBoot啟動失敗時的異常。
ApplicationFailedEvent 事件在SpringBoot啟動失敗時觸發,標志SpringBoot啟動失敗。
此篇文章相對簡單,對SpringBoot內置的7種生命周期事件進行了詳細分析。我們還是引用上篇文章的一張圖來回顧一下這些生命周期事件及其用途:
由於有一些小夥伴們建議之前有些源碼分析文章太長,導致耐心不夠,看不下去,因此,之後的源碼分析文章如果太長的話,筆者將會考慮拆分為幾篇文章,這樣就比較短小了,比較容易看完,嘿嘿。
【源碼筆記】Github地址:
https://github.com/yuanmabiji/Java-SourceCode-Blogs
點贊搞起來,嘿嘿嘿!
公眾號【 源碼筆記 】專注於Java後端系列框架的源碼分析。
C. 怎樣能獲得視頻或者短片的源代碼
可以打開所在頁面的查看,源文件,在打開的代碼記事本後,裡面全是代碼,然後找到所需要的視頻的地址,你可以將找到的視頻地址復制,粘貼在IE地址欄上打開,如果是就可以看到單獨的視頻文件,如果不是說明你沒找對。
源代碼(也稱源程序),是指一系列人類可讀的計算機語言指令。 在現代程序語言中,源代碼可以是以書籍或者磁帶的形式出現,但最為常用的格式是文本文件,這種典型格式的目的是為了編譯出計算機程序。
代碼組合:
源代碼作為軟體的特殊部分,可能被包含在一個或多個文件中。一個程序不必用同一種格式的源代碼書寫。例如,一個程序如果有C語言庫的支持,那麼就可以用C語言;而另一部分為了達到比較高的運行效率,則可以用匯編語言編寫。
較為復雜的軟體,一般需要數十種甚至上百種的源代碼的參與。為了降低種復雜度,必須引入一種可以描述各個源代碼之間聯系,並且如何正確編譯的系統。在這樣的背景下,修訂控制系統(RCS)誕生了,並成為研發者對代碼修訂的必備工具之一。
還有另外一種組合:源代碼的編寫和編譯分別在不同的平台上實現,專業術語叫做軟體移植。
D. 求小說網站源碼
常春藤文學網站系統
ftp://203.171.239.183/asp/Artsql1520061205.rar
不能下載的話你到這個網址自己用迅雷下載:
http://60.28.178.205/dload1.html?cid=
此網址中還有一個 常春藤文學網站系統 SQL 1.5 可以下載,希望能夠滿足你的要求
E. 簡訊源碼90開頭是什麼
簡訊源碼90開頭是,構造手機驗證碼:使用random對象生成要求的隨機數作為驗證碼,例如4位驗證碼:1000~9999之間隨機數;
2、使用介面向簡訊平台發送手機號和驗證碼數據,然後簡訊平台再把驗證碼發送到制定手機號上,介面參數一般包括:目標手機號,隨機驗證碼(或包含失效時間),平台介面地址,平台口令;
3、保存介面返回的信息(一般為json文本數據,然後需轉換為json對象格式);
4、將手機號–驗證碼、操作時間存入Session中,作為後面驗證使用;
F. 想模仿一個網站(haokan123.com 網址導航),請求給我源代碼
我們能根據你的要求提供一份與需求相適應的源程序(教學版,個人版,專業版,企業版)
為獲取建議,你需要留下合法的電子郵件地址。
您還可以直接通過Baihi聯系我們, 或使用網路知道向我求助, 或憑借網路知道發送短消息
或QQ:六五七幺五六幺五('幺'讀 yao 一聲)
有機會可解決你的任務
ES:\
交易提醒:預付訂金是陷阱
開發信息管理系統,B2B/B2C電子商務,企業/個人網站更有優惠
G. 誰有站內搜索的源碼,或者是教程。
67194五端源碼及教程網路網盤免費資源在線學習
鏈接: https://pan..com/s/1tahpynYwQ47bqD2mXnj37g
67194五端源碼及教程 官方相關廣告圖片 安裝程序及資料庫(無數據版) 火鳥門戶小程序源碼_20190415.zip
火鳥門戶小程序上架流程.doc
火鳥門戶系統 更換域名教程.mp4 後台賬號密碼.txt
安卓APP源碼2019-4-18.7z PC端登錄、支付、郵箱、簡訊教程配置教程.docx
IOSAPP源碼2019-4-18.7z CentOS 7.4 64位 配置寶塔環境,部署火鳥門戶帶演示數據.mp4 APP配置教程.doc
安裝說明.txt hnup_rucheng_pro_20190629_100403.sql.gz 0190629_144441.zip
H. 如何找到軟體的源代碼
軟體的源代碼,基本是沒有辦法的,因為軟體運行時都是編譯後的程序,也就是把源代碼翻譯成計算機能執行的代碼,一般的破解是破解功能限制,注冊限制,反編譯也只是能得到匯編代碼,也很難看懂的。
I. 有哪些值得推薦的源碼共享網站
網站源碼資源當然首選站長源碼下載了,主要源碼安全系數要高點,最主要是免費,還有就是一些商業源碼分享站了可能會要積分才能下載了,比如商業源碼,A5源碼,源碼...
J. 小說網站源碼(帶採集功能的,最好是asp的)
復活小說站(帶採集功能) v4.6
* 源碼大小: 2.01 MB
* 源碼類別: 源代碼 | 影視娛樂
* 源碼語言: 簡體中文
* 運行環境: Asp/Access/
功能介紹:
1.帶採集功能,可自己了設計採集哪個站點,另內已存幾個好的小說網採集。
2.整合了廣告系統,可以直接修改廣告,不用每次都改網站代碼。
其他功能介紹:
一、會員功能模塊
1、站內簡訊發布(正在製作)
2、書架收藏夾
3、發表評論
4、申請作家(與添書員整合)
5、申請添書員(與作家整合)
6、申請更新員
7、VIP會員申請(請在「在線客服」中留言給管理員提出申請)
二、作家功能模塊
1、我的文章
2、發表新作
3、增加章節
4、作家專欄
5、VIP作品申請(正在製作)
三、添書員功能模塊
和作家功能類似,不在介紹
四、靜態圖書生成模塊
五、廣告管理模
六、後台管理模塊
網站的核心內容,功能如下:
1、系統參數配置
2、網站數據備份
3、在線執行SQL
4、作品管理
5、作品採集
後台:/admin/index.asp
帳號:admin 密碼:admin
廣告後台地址:ge/index.asp
帳號:admin 密碼:admin