❶ 求助如何通過java來改變本機的IP地址
不能改變的,java有內省的安全機制,不支持那些不安全的操作,而修改ip就更不安全了,所以一般不能直接通過java來修改本機ip的
不過獲取到關於用戶的ip的那個文件的信息然後再去修改倒是可以的
❷ 偽造ip地址到底能否實現
可以的。
偽造這個詞應該是修改數據包,而不是使用代理。TCP無法偽造IP,因為需要三次握手,比較安全;UDP可以偽造,但是由於偽造攻擊很多,部分機房再路由上做了過濾,原地址不是盯型機房的IP的數據包自動丟棄; 不過很多監管不嚴沖塌的機房裡還是可以偽造的。
(2)javaip偽造擴展閱讀:
IP欺騙的防範,一方面需要目標設備採取更強有力的認證措施,不僅僅根據源IP就信任來訪者,更多的需要強口令等認證手段;另一方面採用健壯的交互協議以提高偽裝源IP的門檻。
有些高層協議擁有獨特的防禦方法,比如TCP(傳輸控制協議)通過回復序列號來保證數據包來自於已建立的連接。由於攻擊者凱判猜通常收不到回復信息,因此無從得知序列號。不過有些老機器和舊系統的TCP序列號可以被探得。
❸ java介面怎麼防止被刷
為什麼會有人要刷介面?
1、牟利
黃牛在 12306 網上搶票再倒賣。
2、惡意攻擊競爭對手
如簡訊介面被請求一次,會觸發幾分錢的運營商費用,當量級大了也很可觀。
3、壓測
用 apache bench 做壓力測試。
4、當程序員無聊的時候
什麼是刷介面的"刷"字?
1、次數
多
2、頻率
頻繁,可能 1 秒上千次
3、用戶身份難以識慎含別
可能會在刷的過程中隨時換瀏覽器或者 ip
判斷介面是否是惡意?
根據用戶粒度,如果該用戶符合上面提到的「刷」的概念,就是惡意的。
用戶粒度如何劃分?
1、當前網頁
優點:無
缺點:沒有任何意義,一刷新頁面用戶的身份就變了
2、session
優點:偽造成本一般(可以理解成一個瀏覽器對應了一個用戶)
缺點:當用戶手動清除 cookie 的時候即失效
3、ip
優點:偽造成本高
缺點:要考慮一個公司、一個小區的人一般會共享一個 ip,所以適當的要放寬對單一 ip 的請求限制
ip 信息是存在請求頭里的,而 https 對請求本身做了加密,可以防止 ip 信息被偽造或篡改。所以推薦伺服器採用 https 傳輸。
當知道寬睜笑介面是惡意請求時,我們該怎麼做?
一、直接拒絕訪問
優點:簡單粗暴
缺點:簡單粗暴
二、返回「早臘操作頻繁」的錯誤提示
優點:提示友好
缺點:會把確實是操作比較頻繁的真實用戶攔截
三、驗證碼
1、圖形
2、滑塊
3、找不同
優點:精準識別請求是真人還是機器發出的,二次篩選出真正的用戶
缺點:不夠人性化,用戶操作時間長、體驗差
4、限制ip
客戶端請求的時候 , 把ip記錄下來,每次訪問這個ip訪問次數+1,如果查過制定次數,把這個ip拉黑
實例:https://blog.csdn.net/DuTianTian_csdn/article/details/81277189
安全問題是長期的和攻擊者鬥智斗勇的問題,沒有一勞永逸的解決方案,不斷交鋒,不斷成長
❹ 用Java實現IDEA數據加密解密
隨著Internet的迅速發展,電子商務的浪潮勢不可擋,日常工作和數據傳輸都放在Internet網上進行傳輸,大大提高了效率,降低了成本,創造了良好的效益。但是,由於Internet網路協議本身存在著重要的安全問題(IP包本身並不繼承任何安全特性,很容易偽造出IP包的地址、修改其內容、重播以前的包以及在傳輸途中攔截並查看包的內容),使網上的信息傳輸存在巨大的安全風險電子商務的安全問題也越來越突出。加密是電子商務中最主要的安全技術,加密方法的選取直接影響電子商務活動中信息的安全程度,在電子商務系統中,主要的安全問題都可以通過加密來解決。數據的保密性可通過不同的加密演算法對數據加密來實現。
對我國來講,雖然可以引進很多的外國設備,但加密設備不能依靠引進,因為它涉及到網路安全、國家機密信息的安全,所以必須自己研製。當前國際上有許多加密演算法,其中DES(Data Encryption Standard)是發明最早的用得最廣泛的分組對稱加密演算法,DES用56位蜜鑰加密64位明文,輸出64位密文,DES的56位密鑰共有256 種可能的密鑰,但歷史上曾利用窮舉攻擊破解過DES密鑰,1998年電子邊境基金會(EFF)用25萬美元製造的專用計算機,用56小時破解了DES的密鑰,1999年,EFF用22小時完成了破解工作,使DES演算法受到了嚴重打擊,使它的安全性受到嚴重威脅。因為JAVA語言的安全性和網路處理能力較強,本文主要介紹使用IDEA(Internation Data Encryption Algorithm )數據加密演算法在Java環境下實現數據的安全傳輸。
一、IDEA數據加密演算法
IDEA數據加密演算法是由中國學者來學嘉博士和著名的密碼專家 James L. Massey 於1990年聯合提出的。它的明文和密文都是64比特,但密鑰長為128比特。IDEA 是作為迭代的分組密碼實現的,使用 128 位的密鑰和 8 個循環。這比 DES 提供了更多的 安全性,但是在選擇用於 IDEA 的密鑰時,應該排除那些稱為「弱密鑰」的密鑰。DES 只有四個弱密鑰和 12 個次弱密鑰,而 IDEA 中的弱密鑰數相當可觀,有 2 的 51 次方個。但是,如果密鑰的總數非常大,達到 2 的 128 次方個,那麼仍有 2 的 77 次方個密鑰可供選擇。IDEA 被認為是極為安全的。使用 128 位的密鑰,蠻力攻擊中需要進行的測試次數與 DES 相比會明顯增大,甚至允許對弱密鑰測試。而且,它本身 也顯示了它尤其能抵抗專業形式的分析性攻擊。
二、Java密碼體系和Java密碼擴展
Java是Sun公司開發的一種面向對象的編程語言,並且由於它的平台無關性被大量應用於Internet的開發。Java密碼體系(JCA)和Java密碼擴展(JCE)的設計目的是為Java提供與實現無關的加密函數API。它們都用factory方法來創建類的常式,然後把實際的加密函數委託給提供者指定的底層引擎,引擎中為類提供了服務提供者介面在Java中實現數據的加密/解密,是使用其內置的JCE(Java加密擴展)來實現的。Java開發工具集1.1為實現包括數字簽名和信息摘要在內的加密功能,推出了一種基於供應商的新型靈活應用編程介面。Java密碼體系結構支持供應商的互操作,同時支持硬體和軟體實現。Java密碼學結構設計遵循兩個原則:(1)演算法的獨立性和可靠性。(2)實現的獨立性和相互作用性。演算法的獨立性是通過定義密碼服務類來獲得。用戶只需了解密碼演算法的概念,而不用去關心如何實現這些概念。實現的獨立性和相互作用性通過密碼服務提供器來實現。密碼服務提供器是實現一個或多個密碼服務的一個或多個程序包。軟體開發商根據一定介面,將各種演算法實現後,打包成一個提供器,用戶可以安裝不同的提供器。安裝和配置提供器,可將包含提供器的ZIP和JAR文件放在CLASSPATH下,再編輯Java安全屬性文件來設置定義一個提供器。Java運行環境Sun版本時,提供一個預設的提供器Sun。
三、Java環境下的實現
1.加密過程的實現
void idea_enc( int data11[], /*待加密的64位數據首地址*/ int key1[]){
int i ;
int tmp,x;
int zz[]=new int[6];
for ( i = 0 ; i < 48 ; i += 6) { /*進行8輪循環*/
for(int j=0,box=i;j<6;j++,box++){
zz[j]=key1[box];
}
x = handle_data(data11,zz);
tmp = data11[1]; /*交換中間兩個*/
data11[1] = data11[2];
data11[2] = tmp;
}
tmp = data11[1]; /*最後一輪不交換*/
data11[1] = data11[2];
data11[2] = tmp;
data11[0] = MUL(data11[0],key1[48]);
data11[1] =(char)((data11[1] + key1[49])%0x10000);
data11[2] =(char)((data11[2] + key1[50])%0x10000);
data11[3] = MUL(data11[3],key1[51]);
}
2.解密過程的實現
void key_decryExp(int outkey[])/*解密密鑰的變逆處理*/
{ int tmpkey[] = new int[52] ;
int i;
for ( i = 0 ; i < 52 ; i++) {
tmpkey[i] = outkey[ wz_spkey[i] ] ;/*換位*/
}
for ( i = 0 ; i < 52 ; i++) {
outkey[i] = tmpkey[i];
}
for ( i = 0 ; i < 18 ; i++) {
outkey[wz_spaddrever[i]] = (char)(65536-outkey[wz_spaddrever[i]]) ;/*替換成加法逆*/
}
for ( i = 0 ; i < 18 ; i++){
outkey[wz_spmulrevr[i]] =(char)(mulInv(outkey[wz_spmulrevr[i]] ));/*替換成乘法逆*/
}
}
四、總結
在實際應用中,我們可以使用Java開發工具包(JDK)中內置的對Socket通信的支持,通過JCE中的Java流和鏈表,加密基於Socket的網路通信.我們知道,加密/解密是數據傳輸中保證數據完整性的常用方法,Java語言因其平台無關性,在Internet上的應用非常之廣泛.使用Java實現基於IDEA的數據加密傳輸可以在不同的平台上實現並具有實現簡潔、安全性強等優點。
❺ 怎樣用Java驗證ip和子網掩碼是否正確,詳細問題如下
把ip和子網掩碼轉換成二進制 做「按位與」運算 得出的就是網路id號a 另一個ip也是一樣計算方法 得出網路id號b
比較a=b 就說明在一個子網 反之 不在
ip轉換成二進制的時候 注意按段轉
❻ 用java能夠修改ip地址嗎
可以的。如果是普通的ADSL用戶,那麼由於是動態IP,不是固定IP,當你每次上網時(也就是撥號),ISP提供商會臨時分配你一個IP地址供你使用,特別是鐵通 聯通等網路,IP段跨度很大,所以造成IP歸屬地顯示錯誤。
希望可以幫到你,謝謝!
❼ java如何模擬IP請求
可以自己設置時間間隔去更換IP,還有錯誤重連功能。
❽ java 如何驗證ip地址
可以使用正則表達式驗證ip地址,ip地址分為v4和v6兩個版本,v4為32位,分4段,中間用.隔開,v6為128位,可分為4段32位中間用::隔開。
以下是驗證類詳細代碼:
import java.util.regex.Pattern;
/**
* A collection of utilities relating to InetAddresses.
*/
public class InetAddressUtils {
public static void main(String[] args){
String addr="192.168.1.2";
System.out.println(isIPv4Address(addr));
}
private static final Pattern IPV4_PATTERN =
Pattern.compile(
"^(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)(\\.(25[0-5]|2[0-4]\\d|[0-1]?\\d?\\d)){3}$");
private static final Pattern IPV6_STD_PATTERN =
Pattern.compile(
"^(?:[0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$");
private static final Pattern IPV6_HEX_COMPRESSED_PATTERN =
Pattern.compile(
"^((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)::((?:[0-9A-Fa-f]{1,4}(?::[0-9A-Fa-f]{1,4})*)?)$");
public static boolean isIPv4Address(final String input) {
return IPV4_PATTERN.matcher(input).matches();
}
public static boolean isIPv6StdAddress(final String input) {
return IPV6_STD_PATTERN.matcher(input).matches();
}
public static boolean isIPv6HexCompressedAddress(final String input) {
return IPV6_HEX_COMPRESSED_PATTERN.matcher(input).matches();
}
public static boolean isIPv6Address(final String input) {
return isIPv6StdAddress(input) || isIPv6HexCompressedAddress(input);
}
}
❾ java中關於偽造IP地址的方法
物理意義上沒有「偽造Ip」這一說,只有使用代理IP。