簡體   English   中英

使用Caesar Cipher身份驗證用Java編寫客戶端服務器套接字程序時,我需要知道什么?

[英]What do I need to know to write a client server socket program in Java using Caesar Cipher authentication?

我有一個名為“用Java編寫客戶端服務器套接字程序的服務器”,其中服務器將使用身份驗證算法對客戶端進行身份驗證。 我該如何開始? 具備計算機安全性和套接字編程知識的先決條件是什么? 有任何指向優秀教程的鏈接嗎?

編輯:使用凱撒密碼

也許這可以幫助您:

http://www.javaworld.com/jw-12-1996/jw-12-sockets.html

認證可以是簡單的用戶名/密碼方案。

這個要求是含糊的。 我會給你最簡單的答案:

以這樣的方式編寫服務器,即每個請求都需要用戶名和密碼。

您使用的是身份驗證算法,還是僅加密郵件?

如果您只需要加密消息,請確保兩端都存儲有相同的密碼(兩個字符數組應該起作用),並在發送消息之前逐字符加密字符串,然后在另一端逐字符解密。

您不使用Caesar Cypher進行身份驗證,而只是使用加密。 如果要進行身份驗證,則可以分別將套接字連接的第一條消息設為用戶名/密碼,並可以對客戶端和服務器端進行加密,然后檢查它們是否有效。 對於僅此硬代碼的最簡單示例,可以在命令行上輸入服務器上可接受的用戶名和密碼,並在客戶端上輸入用戶名和密碼。

對於任何在這里使用Google搜索方式的人來說,身份驗證算法或“握手”的示例不僅僅是usernamepassword 這是從服務器發送到客戶端的挑戰,例如隨機字符串。 客戶端針對質詢執行算法,例如按位操作,然后將其發送回服務器。 然后,服務器對挑戰執行相同的操作,並與客戶端在驗證登錄之前發送的內容進行比較。

這用於創建更神秘的協議,以阻止第三方程序開發人員(例如,機器人程序制造商)創建未經授權的軟件。 通常,握手過程非常困難,不僅在操作中,而且使用所使用語言的復雜功能使移植變得非常困難。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM