Skip to content

Instantly share code, notes, and snippets.

View josemmo's full-sized avatar

José Miguel Moreno josemmo

View GitHub Profile
function checkDevTools() {
// TODO: hacer cosas
// Preparar la siguiente ejecución
setTimeout(checkDevTools, 250);
}
checkDevTools();
// Iniciar cronómetro
var time_start = (new Date()).getTime();
// Pausar ejecución
debugger;
// Parar cronómetro
var time_end = (new Date()).getTime();
var diff = time_end - time_start;
// Detectar Developer Tools abierto
var tolerance = 300;
var dev_open = (diff > tolerance);
// Mostrar mensaje de error
if (dev_open) {
document.body.innerHTML = 'Cierra las Developer Tools y recarga la web';
}
public static KeyPair generateKeyPair() {
KeyPairGenerator kpg = KeyPairGenerator.getInstance("RSA");
kpg.initialize(1024);
return kpg.genKeyPair();
}
public static String keyToBase64(Key key) {
return Base64.getEncoder().encodeToString(key.getEncoded());
}
private final PublicKey from;
private final PublicKey to;
private final float amount;
private final Date timestamp;
private byte[] signature = null;
public boolean sign(PrivateKey pk) {
// Comprobar que no está firmada la transacción
if (signature != null) return false;
// Comprobar que la clave privada se corresponde con esta transacción
PublicKey expected = getPublicFromPrivate(pk);
if (!expected.equals(from)) return false;
// Intentar firmar la transacción
try {
Signature sig = Signature.getInstance("SHA1WithRSA");
// Especificar clave privada
public float getBalance(PublicKey addr) {
float balance = 0;
for (Block b : chain) {
// Añadir saldo de transacciones
for (Transaction t : b.getTransactions()) {
if (addr.equals(t.getFrom())) {
// En caso de ser el pagador
balance -= t.getAmount();
} else if (addr.equals(t.getTo())) {
// En caso de ser el receptor
private final long index;
private final ArrayList<Transaction> transactions;
private long nonce = 0;
private String hash;
private final String previous_hash;
private final PublicKey miner;
private final float fee;
public void mine() {
while (!isValidHash()) {
nonce++;
recalculateHash();
}
}