Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

View Goblin80's full-sized avatar
🐿️

Mahmoud Goblin80

🐿️
View GitHub Profile
@Goblin80
Goblin80 / rmOtherEngines.js
Created May 1, 2020 16:48
Remove Chrome's Custom Search Engines
// Go to chrome://settings/searchEngines
// Open the Developer Tools
// Run the following in the Javascript console tab
const otherEngines = document.querySelector("body > settings-ui")
.shadowRoot.querySelector("#main")
.shadowRoot.querySelector("settings-basic-page")
.shadowRoot.querySelector("#basicPage > settings-section.expanded > settings-search-page")
.shadowRoot.querySelector("#pages > settings-subpage > settings-search-engines-page")
.shadowRoot.querySelector("#otherEngines").shadowRoot
@Goblin80
Goblin80 / rsa.py
Created April 11, 2019 19:28
implementation of RSA public-key cryptosystem in python
import argparse
class RSA:
def __init__(self, p, q, e):
self.p, self.q, self.e = p, q, e
self.n = p * q
self.phi = (p - 1) * (q - 1)
self.d = e ** (self.phi - 1) % self.phi
@Goblin80
Goblin80 / TripleDES.java
Created March 13, 2019 11:36
3DES (ECB) implementation in Java
import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
import java.util.Arrays;
public class TripleDES {
enum MODE {
ENCRYPT(0), DECRYPT(1);
int code;
@Goblin80
Goblin80 / BruteDES.java
Last active March 13, 2019 11:38
Crack DES (ECB) through searching whole key space using Java Streams
import javax.crypto.*;
import javax.crypto.spec.DESKeySpec;
import java.util.Arrays;
import java.util.stream.LongStream;
public class BruteDES {
public static byte[] encrypt(byte[] plaintext, byte[] rawkey) {
try {
return _digest(plaintext, rawkey, Cipher.ENCRYPT_MODE);
@Goblin80
Goblin80 / Caesar.h
Created February 24, 2019 18:09
Caesar cipher encryption/decryption/brute-force routine in C++
#include <fstream>
#include <algorithm>
#include "XText.h"
class Caesar
{
public:
static Chipertext encrypt(Plaintext plaintext, int key)
{
std::string chipertext;
@Goblin80
Goblin80 / swap.sh
Created November 2, 2018 13:19
Add permanent swap space on Ubuntu
!#/bin/bash
sudo fallocate -l 1G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
sudo cp /etc/fstab /etc/fstab.bak
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
@Goblin80
Goblin80 / bigram.sh
Created August 17, 2018 18:09
MapReduce program to calculate the conditional probability that a word q occurs after another word p
#!/bin/bash
hadoop fs -rm -R shakespeare
hadoop fs -mkdir -p shakespeare/input
hadoop fs -put input/* shakespeare/input
hadoop jar /usr/lib/hadoop-mapreduce/hadoop-streaming-2.6.0-cdh5.13.0.jar -input shakespeare/input -output shakespeare/output -mapper "python `pwd`/mapper.py" -reducer "python `pwd`/reducer.py"
hadoop fs -cat shakespeare/output/part* | head -n 10
@Goblin80
Goblin80 / merge.cpp
Created May 30, 2018 12:37
General purpose merge sort implementation in C++11
#include <iostream>
#include <vector>
using namespace std;
template <typename T>
void _Merge(vector<T> &a, int low, int mid, int high)
{
int n, p, q,
l = mid - low + 1,
@Goblin80
Goblin80 / sudoku.m
Created May 16, 2018 12:42
[MATLAB] A fitness function for a 4x4 sudoku using genetic algorithm
function score = sudoku(x)
x = reshape(round(x), 4, 4);
x(1,1) = 1;
x(1,4) = 2;
x(2,3) = 1;
x(3,2) = 3;
x(4,1) = 4;
x(4,4) = 3;
@Goblin80
Goblin80 / pageReplacement.cpp
Created May 4, 2018 19:50
Implementation of various page replacement algorithms
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
template<typename T = int>
class Replacement
{
public: