మీరు HTTPS ప్రోటోకాల్ వాడే - TopicsExpress



          

మీరు HTTPS ప్రోటోకాల్ వాడే ఉంటారు , ట్రాన్స్పోర్ట్ లేయర్ లో సెక్యూరిటీ ప్రోవైడ్ చేస్తుంది , ఇందులో ఎక్కువగా వాడేది RC4 అల్గోరిథం ,చాల వరకు వెబ్సైటు లు SSL సర్టిఫికేట్ లు ఉపయోగిస్తారు ,మనము బ్రౌజరు ద్వారా పంపించే డేటా మొత్తం encrypt అవుతుంది ,ఇది symmetric అల్గోరిథం , ఏదో ఒక టాస్క్ కోసం పాస్వర్డ్ ఇంకో సిస్టం ద్వారా encrypt అయ్యి డేటా బేస్ లో ఉంటే దానిని రీడ్ చేసి మనకి వచ్చిన పాస్వర్డ్ ని సేం RC4 అల్గోరిథం ద్వారా encrypt చేసి authenticate చెయ్యొచ్చు , java లో MD5 అనే బిల్ట్ ఇన్ hashing అల్గోరిథం ఉంటుంది ,సెక్యూరిటీ లో రకరకాలు ఉంటాయి ,వెబ్ సర్వీస్ లలో ఉపయోగించే message signing ,RSA పబ్లిక్ ,ప్రైవేటు కీ అల్గోరిథం లు (మెసేజ్ encryption) ,ఇప్పటివరకు సర్టిఫికేట్ లు ఉపయోగించి cipher objects ద్వారా సెక్యూరిటీ ప్రోవైడ్ చేయడం జరిగింది ,అయితే ఈ మధ్యే RC4 అల్గోరిథం ను java లో implement చేసి cipher టెక్స్ట్ ని UTF-32 Little Endian character set లోకి మార్చి హెక్సా స్త్రింగ్ ని క్రియేట్ చేసాను ,అంటే ఇక్కడ Base64 ని కూడా ఉపయోగించ వచ్చు ,కాని నేను hexadecimal లో రాసాను ,ఎవరికయినా సెక్యూరిటీ మీద పని చేస్తే ఉపయోగించుకోండి , నిజమయిన హాకర్స్ వీటి బాబులని కూడా బద్దలు కొడతారు ,అది వేరే విషయం .ఈ java ప్రోగ్రాం లో మీకు ఇష్టం వచ్చిన key ద్వారా encrypt చేయవచ్చు import java.io.IOException; import java.io.UnsupportedEncodingException; import java.security.InvalidAlgorithmParameterException; import java.security.InvalidKeyException; import javax.crypto.BadPaddingException; import javax.crypto.IllegalBlockSizeException; import javax.crypto.ShortBufferException; import javax.xml.bind.DatatypeConverter; public class FaceBookCrypter { private static final short BOX_LENGTH = 256;// Len of nBox private final static String ENCRYPTION_KEY = "facebookcryptokeyydddfggtfjK+e0hfvkK7l1M6h5PRiDACEESSDs%$#@!!rSOhudEFyKeEfc96qirxY/6dhfLeYtnYgfcDwrw2Twehbfdnnmskdiurnjesavslsls"; public static void main(String args[]) throws InvalidKeyException, InvalidAlgorithmParameterException, IllegalBlockSizeException, ShortBufferException, BadPaddingException, IOException, ClassNotFoundException { String stringToBeEncrypted = "testpassword"; FaceBookCrypter faceBookCrypter = new FaceBookCrypter(); String encryptedString = faceBookCrypter.getEencryptedString(stringToBeEncrypted); System.out.println("Before encryption==>" +stringToBeEncrypted ); System.out.println(encryptedString); for (char i = 0; i < encryptedString.toCharArray().length; i++) { System.out.print((int) encryptedString.toCharArray()[i] + "#"); } System.out.println(); //this is the value we are going to use String encryptedStr = DatatypeConverter.printHexBinary(encryptedString.getBytes("UTF-32LE")); System.out.println("After encryption==>" + encryptedStr); } private void swap(int i, int j, int[] sbox) { int temp = sbox[i]; sbox[i] = sbox[j]; sbox[j] = temp; } private int[] getMNBox() throws UnsupportedEncodingException { int[] mnBox = new int[BOX_LENGTH]; // Used to populate m_nBox int index2 = 0; int keyLen = ENCRYPTION_KEY.length(); char[] encryptionKeyChar = ENCRYPTION_KEY.toCharArray(); // First Loop for (int count = 0; count < BOX_LENGTH; count++) { mnBox[count] = (int) count; } // Second Loop for (int count = 0; count < BOX_LENGTH; count++) { index2 = (index2 + mnBox[count] + encryptionKeyChar[count % keyLen]) % BOX_LENGTH; swap(count, index2, mnBox); } return mnBox; } public String getEencryptedString(String clearText) throws UnsupportedEncodingException { int [] locBox = getMNBox(); short i = 0; short j = 0; char[] input = clearText.toCharArray(); // Output byte array int[] output = new int[input.length]; // Run Alghoritm for (int offset = 0; offset < input.length; offset++) { i = (short) ((i + 1) % BOX_LENGTH); j = (short) ((j + locBox[i]) % BOX_LENGTH); swap(i, j, locBox); int a = input[offset]; int b = locBox[(locBox[i] + locBox[j]) % BOX_LENGTH]; output[offset] = ( a ^ b); } char[] chars = new char[output.length]; for (int k = 0; k < output.length; k++) { chars[k] = (char) output[k]; } return new String(chars); } }
Posted on: Mon, 30 Sep 2013 07:11:50 +0000

Trending Topics



Recently Viewed Topics




© 2015