'how to convert this code in javascript to java

i have this code in javascript and i need to convert it to java but im not expert in javascript.

here the code:

function keyGen(mat)
{
        var hash = base64_encode(pack("H*", sha1($mat)));
        var l = obj.hash.length - 4;
        var p1 = Math.floor(Math.random() * (l+1)) ;
        var p2 = Math.floor(Math.random() * (l+1)) ;
        var p3 = Math.floor(Math.random() * (l+1)) ;
        var motif1 = obj.hash.substr(p1, 4) ;
        var motif2 = obj.hash.substr(p2, 4) ;
        var motif3 = obj.hash.substr(p3, 4) ;
        var cle = motif1+motif2+motif3 ;
    return cle ;
}

for the hash i use the function but i can't to modify it:

public static String get_SHA_512_SecurePassword(String passwordToHash, String   salt){
        String generatedPassword = null;
            try {
                 MessageDigest md = MessageDigest.getInstance("SHA-512");
                 md.update(salt.getBytes(StandardCharsets.UTF_8));
                 byte[] bytes = md.digest(passwordToHash.getBytes(StandardCharsets.UTF_8));
                 StringBuilder sb = new StringBuilder();
                 for(int i=0; i< bytes.length ;i++){
                    sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
                 }
                 generatedPassword = sb.toString();
                } 
               catch (NoSuchAlgorithmException e){
                e.printStackTrace();
               }
            return generatedPassword;
        }


Solution 1:[1]

function keyGen(mat) {
    // seems to get the sha1 of $mat (whatever that is), 
    // converts this sha1 into HEX string
    // encode the hex string into into base64
    // the above is a GUESS, as I don't know what library you are using for these functions
    var hash = base64_encode(pack("H*", sha1($mat)));

    // length of `obj.hash` - whatever that is
    var l = obj.hash.length - 4;

    // random number between 0 and l + 1
    var p1 = Math.floor(Math.random() * (l+1)) ;
    // random number between 0 and l + 1
    var p2 = Math.floor(Math.random() * (l+1)) ;
    // random number between 0 and l + 1
    var p3 = Math.floor(Math.random() * (l+1)) ;

    // a substring of whatever obj.hash is, from position p1 length 4
    var motif1 = obj.hash.substr(p1, 4) ;
    // a substring of whatever obj.hash is, from position p2 length 4
    var motif2 = obj.hash.substr(p2, 4) ;
    // a substring of whatever obj.hash is, from position p3 length 4
    var motif3 = obj.hash.substr(p3, 4) ;

    // the string concatenation of the above three strings
    var cle = motif1+motif2+motif3 ;
    // returns this 12 character string
    return cle ;
}

Now, all you need to figure out is

  • What is base64_encode
  • what is pack
  • what is sha1
  • what is $mat
  • what is obj that you use obj.hash from
  • why you are creating hash and never using it
  • why you never use the mat argument

Solution 2:[2]

here is the full code : i found it ..... thanks all

public static String get_SHA_512_SecurePassword(String passwordToHash, String   salt){
        String generatedPassword = null;
            try {
                 MessageDigest md = MessageDigest.getInstance("SHA-512");
                 md.update(salt.getBytes(StandardCharsets.UTF_8));
                 byte[] bytes = md.digest(passwordToHash.getBytes(StandardCharsets.UTF_8));
                 StringBuilder sb = new StringBuilder();
                 for(int i=0; i< bytes.length ;i++){
                    sb.append(Integer.toString((bytes[i] & 0xff) + 0x100, 16).substring(1));
                 }
            //     String base64 = Base64.encodeBase64(sb.toString());
                 generatedPassword = sb.toString();
                } 
               catch (NoSuchAlgorithmException e){
                e.printStackTrace();
               }
            return generatedPassword;
        }

    public static String keyGen(String Studentpass,String SaltCrypter) {
        String hash=get_SHA_512_SecurePassword(Studentpass,SaltCrypter);

        int  l = hash.length() - 4;
        new Random().nextInt();

        int p1 =  new  Random().nextInt(l) ; 
        int p2 =  new  Random().nextInt(l) ; 
        int p3 =  new  Random().nextInt(l) ; 

        String motif1 = hash.substring(p1, p1+4);
        String motif2 = hash.substring(p2, p2+4);
        String motif3 = hash.substring(p3, p3+4);
        String cle =(motif1+motif2+motif3);
        cle.replace("l", "L").replace("O", "o").replace("I", "i");
        return cle;
    }

Solution 3:[3]

let arr = [
    {url: 'http://172.25.38.138:4000/moservice/create1', startTime: '04/11/2022 16:04:15', endTime: '04/11/2022 16:24:15'},
    {url: 'http://172.25.38.138:4000/moservice/create2', startTime: '04/11/2022 16:24:15', endTime: '04/11/2022 16:34:15'},
    {url: 'http://172.25.38.138:4000/moservice/create3', startTime: '04/11/2022 16:34:15', endTime: '04/11/2022 16:54:15'},
    {url: 'http://172.25.38.138:4000/moservice/create4', startTime: '04/11/2022 17:04:15', endTime: '04/11/2022 17:14:15'}
];
let curntTime = new Date()
function getUrl(arr) {
    for (let i = 0; i < arr.length; i++) {
        let startTime = new Date(arr[i].startTime)
        let endTime = new Date(arr[i].endTime)

        if (curntTime > startTime && curntTime < endTime) {
            console.log(arr[i].url)
        }
    }
}
getUrl(arr)

B

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Jaromanda X
Solution 2 Adenfr Aden
Solution 3 angel.bonev