Added PBKDF2 hash method
This commit is contained in:
parent
577aea998b
commit
6d1b8898c8
6 changed files with 124 additions and 31 deletions
BIN
ZUtil.jar
Normal file
BIN
ZUtil.jar
Normal file
Binary file not shown.
|
|
@ -25,6 +25,8 @@ package zutil;
|
||||||
import zutil.converters.Converter;
|
import zutil.converters.Converter;
|
||||||
|
|
||||||
import javax.crypto.Mac;
|
import javax.crypto.Mac;
|
||||||
|
import javax.crypto.SecretKeyFactory;
|
||||||
|
import javax.crypto.spec.PBEKeySpec;
|
||||||
import javax.crypto.spec.SecretKeySpec;
|
import javax.crypto.spec.SecretKeySpec;
|
||||||
import java.io.*;
|
import java.io.*;
|
||||||
import java.math.BigInteger;
|
import java.math.BigInteger;
|
||||||
|
|
@ -65,7 +67,7 @@ public class Hasher {
|
||||||
/**
|
/**
|
||||||
* Returns the MD5 hash of the given object
|
* Returns the MD5 hash of the given object
|
||||||
*
|
*
|
||||||
* @param object is the String to hash
|
* @param str is the String to hash
|
||||||
* @return an String containing the hash
|
* @return an String containing the hash
|
||||||
*/
|
*/
|
||||||
public static String MD5(String str){
|
public static String MD5(String str){
|
||||||
|
|
@ -175,6 +177,23 @@ public class Hasher {
|
||||||
}
|
}
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String PBKDF2(String data, String salt, int iterations){
|
||||||
|
try {
|
||||||
|
PBEKeySpec spec = new PBEKeySpec(
|
||||||
|
data.toCharArray(),
|
||||||
|
salt.getBytes(),
|
||||||
|
iterations,
|
||||||
|
256);
|
||||||
|
SecretKeyFactory f = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA1");
|
||||||
|
byte[] raw = f.generateSecret(spec).getEncoded();
|
||||||
|
|
||||||
|
return Converter.toHexString(raw);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hashes the given String as UTF8
|
* Hashes the given String as UTF8
|
||||||
|
|
|
||||||
|
|
@ -50,22 +50,7 @@ public class SSDPClient extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
||||||
private HashMap<String, SSDPServiceInfo> services_usn;
|
private HashMap<String, SSDPServiceInfo> services_usn;
|
||||||
|
|
||||||
private SSDPServiceListener listener;
|
private SSDPServiceListener listener;
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException{
|
|
||||||
System.out.println(LogUtil.getCalingClass());
|
|
||||||
LogUtil.setGlobalLevel(Level.FINEST);
|
|
||||||
SSDPClient ssdp = new SSDPClient();
|
|
||||||
//ssdp.requestService("upnp:rootdevice");
|
|
||||||
ssdp.requestService("zap:discover");
|
|
||||||
ssdp.start();
|
|
||||||
|
|
||||||
for(int i=0; true ;++i){
|
|
||||||
while( i==ssdp.getServicesCount("upnp:rootdevice") ){ try{Thread.sleep(100);}catch(Exception e){} }
|
|
||||||
logger.log(Level.FINEST, "************************" );
|
|
||||||
logger.log(Level.FINEST, ""+ssdp.getServices("upnp:rootdevice").get(i) );
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates new instance of this class. An UDP
|
* Creates new instance of this class. An UDP
|
||||||
|
|
|
||||||
|
|
@ -77,20 +77,6 @@ public class SSDPServer extends ThreadedUDPNetwork implements ThreadedUDPNetwork
|
||||||
private HashMap<String, SSDPServiceInfo> services;
|
private HashMap<String, SSDPServiceInfo> services;
|
||||||
|
|
||||||
|
|
||||||
public static void main(String[] args) throws IOException{
|
|
||||||
LogUtil.setGlobalLevel(Level.FINEST);
|
|
||||||
StandardSSDPInfo service = new StandardSSDPInfo();
|
|
||||||
service.setLocation("nowhere");
|
|
||||||
service.setST("zep:discover");
|
|
||||||
HashMap<String, String> headers = new HashMap<String, String>();
|
|
||||||
headers.put("Alias", "Desktop");
|
|
||||||
headers.put("PublicKey", "SuperDesktopKey");
|
|
||||||
service.setHeaders(headers);
|
|
||||||
SSDPServer ssdp = new SSDPServer();
|
|
||||||
ssdp.addService(service);
|
|
||||||
ssdp.start();
|
|
||||||
logger.info("SSDP Server running");
|
|
||||||
}
|
|
||||||
|
|
||||||
public SSDPServer() throws IOException{
|
public SSDPServer() throws IOException{
|
||||||
super( null, SSDP_MULTICAST_ADDR, SSDP_PORT );
|
super( null, SSDP_MULTICAST_ADDR, SSDP_PORT );
|
||||||
|
|
|
||||||
49
src/zutil/test/SSDPClientTest.java
Normal file
49
src/zutil/test/SSDPClientTest.java
Normal file
|
|
@ -0,0 +1,49 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2015 Ziver
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package zutil.test;
|
||||||
|
|
||||||
|
import zutil.log.LogUtil;
|
||||||
|
import zutil.net.ssdp.SSDPClient;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Ziver on 2015-09-29.
|
||||||
|
*/
|
||||||
|
public class SSDPClientTest {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
System.out.println(LogUtil.getCalingClass());
|
||||||
|
LogUtil.setGlobalLevel(Level.FINEST);
|
||||||
|
SSDPClient ssdp = new SSDPClient();
|
||||||
|
ssdp.requestService("upnp:rootdevice");
|
||||||
|
ssdp.start();
|
||||||
|
|
||||||
|
for(int i=0; true ;++i){
|
||||||
|
while( i==ssdp.getServicesCount("upnp:rootdevice") ){ try{Thread.sleep(100);}catch(Exception e){} }
|
||||||
|
System.out.println("************************" );
|
||||||
|
System.out.println("" + ssdp.getServices("upnp:rootdevice").get(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
54
src/zutil/test/SSDPServerTest.java
Normal file
54
src/zutil/test/SSDPServerTest.java
Normal file
|
|
@ -0,0 +1,54 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2015 Ziver
|
||||||
|
*
|
||||||
|
* Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
|
* of this software and associated documentation files (the "Software"), to deal
|
||||||
|
* in the Software without restriction, including without limitation the rights
|
||||||
|
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||||
|
* copies of the Software, and to permit persons to whom the Software is
|
||||||
|
* furnished to do so, subject to the following conditions:
|
||||||
|
*
|
||||||
|
* The above copyright notice and this permission notice shall be included in
|
||||||
|
* all copies or substantial portions of the Software.
|
||||||
|
*
|
||||||
|
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||||
|
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||||
|
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||||
|
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||||
|
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||||
|
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||||
|
* THE SOFTWARE.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package zutil.test;
|
||||||
|
|
||||||
|
import zutil.log.LogUtil;
|
||||||
|
import zutil.net.ssdp.SSDPServer;
|
||||||
|
import zutil.net.ssdp.StandardSSDPInfo;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.logging.Level;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Created by Ziver on 2015-09-29.
|
||||||
|
*/
|
||||||
|
public class SSDPServerTest {
|
||||||
|
|
||||||
|
public static void main(String[] args) throws IOException {
|
||||||
|
LogUtil.setGlobalLevel(Level.FINEST);
|
||||||
|
|
||||||
|
StandardSSDPInfo service = new StandardSSDPInfo();
|
||||||
|
service.setLocation("nowhere");
|
||||||
|
service.setST("zep:discover");
|
||||||
|
HashMap<String, String> headers = new HashMap<String, String>();
|
||||||
|
headers.put("Alias", "Desktop");
|
||||||
|
headers.put("PublicKey", "SuperDesktopKey");
|
||||||
|
service.setHeaders(headers);
|
||||||
|
|
||||||
|
SSDPServer ssdp = new SSDPServer();
|
||||||
|
ssdp.addService(service);
|
||||||
|
ssdp.start();
|
||||||
|
System.out.println("SSDP Server running");
|
||||||
|
}
|
||||||
|
}
|
||||||
Loading…
Add table
Add a link
Reference in a new issue