Skip to content

Instantly share code, notes, and snippets.

View ledunguit's full-sized avatar

ZeD ledunguit

  • LD
View GitHub Profile
@ledunguit
ledunguit / download_file.rs
Created November 30, 2023 15:28 — forked from giuliano-macedo/download_file.rs
Download large files in rust with progress bar using reqwest, future_util and indicatif
// you need this in your cargo.toml
// reqwest = { version = "0.11.3", features = ["stream"] }
// futures-util = "0.3.14"
// indicatif = "0.15.0"
use std::cmp::min;
use std::fs::File;
use std::io::Write;
use reqwest::Client;
use indicatif::{ProgressBar, ProgressStyle};
@ledunguit
ledunguit / gist:c70d81a94dee717fb7f0700feef357ef
Created November 5, 2023 06:57
Tauri read pdf and extract images
readBinaryFile(event.payload[0]).then(async (data) => {
pdfjsLib.getDocument(data.buffer).promise.then((pdf) => {
pdf.getPage(1).then((page) => {
page.getOperatorList().then((ops) => {
const fns = ops.fnArray;
const args = ops.argsArray;
const validObjectTypes = [
pdfjsLib.OPS.paintImageXObject, // 85
pdfjsLib.OPS.paintImageXObjectRepeat, // 88,
@ledunguit
ledunguit / gist:25941684bf4ed949d2d760f439af6eb8
Created November 5, 2023 06:56
Add alpha channel to Unit8ClampedArray
function addAlphaChannelToUnit8ClampedArray(unit8Array: Uint8ClampedArray, imageWidth: number, imageHeight: number) {
const newImageData = new Uint8ClampedArray(imageWidth * imageHeight * 4);
for (let j = 0, k = 0, jj = imageWidth * imageHeight * 4; j < jj; ) {
newImageData[j++] = unit8Array[k++];
newImageData[j++] = unit8Array[k++];
newImageData[j++] = unit8Array[k++];
newImageData[j++] = 255;
}
{
"version": "v0.0.2",
"notes": "Docma đã có phiên bản mới.",
"pub_date": "2023-10-30T19:25:57Z",
"platforms": {
"darwin-aarch64": {
"signature": "dW50cnVzdGVkIGNvbW1lbnQ6IHNpZ25hdHVyZSBmcm9tIHRhdXJpIHNlY3JldCBrZXkKUlVUVlNsK3pHNDdCM1hoR2VZZzZGQ3ZYWEh0VnNWd3dBUkZKSmJhN1VETzYvZWp0NVhsR05EOGZkYVdXWTBoSkMzanBXNG95b05iWTlXUThaOVdHTUpuV1QzRkpXb0xhT2d3PQp0cnVzdGVkIGNvbW1lbnQ6IHRpbWVzdGFtcDoxNjk4NjAyMDU4CWZpbGU6ZG9jbWEuYXBwLnRhci5negpvNkc1RmFtTzVubVNsblRmNU55YzBaUFZSUlpFaHZCdE1vK2dkTXpYL3ZtRGdYWEhFejlXQkp0WUh1cjdqNEVwUkNSd0R1VkxhWDFkRGUyOTgzSTdEUT09Cg==",
"url": "https://github.com/ledunguit/temp-repo/raw/main/docma.app.tar.gz"
}
}
@ledunguit
ledunguit / vite.config.js
Created November 8, 2022 16:38
Vite config for laravel 9 with ssl
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
import vue from '@vitejs/plugin-vue';
import * as fs from 'fs';
export default defineConfig({
server: {
https: {
cert: fs.readFileSync('./certs/example.com.crt'),
key: fs.readFileSync('./certs/example.com.key')
@ledunguit
ledunguit / systemctl.py
Created March 28, 2022 13:23
Systemctl without init 0
#! /usr/bin/python2
## generated from systemctl3.py - do not change
from __future__ import print_function
__copyright__ = "(C) 2016-2020 Guido U. Draheim, licensed under the EUPL"
__version__ = "1.5.4505"
import logging
logg = logging.getLogger("systemctl")
@ledunguit
ledunguit / RSAKeys.cs
Created November 8, 2021 12:17 — forked from ststeiger/RSAKeys.cs
Import and export RSA Keys between C# and PEM format using BouncyCastle
using Org.BouncyCastle.Crypto;
using Org.BouncyCastle.Crypto.Parameters;
using Org.BouncyCastle.OpenSsl;
using Org.BouncyCastle.Security;
using System;
using System.IO;
using System.Security.Cryptography;
namespace MyProject.Data.Encryption
{
@ledunguit
ledunguit / VS16NoTelem.bat
Created September 12, 2021 02:30
Disable telemetry in Visual Studio 2019
@echo off
fltmc >nul 2>&1 || (
echo This batch script requires administrator privileges. Right-click on
echo the script and select "Run as administrator".
goto :die
)
rem Change this path if you are using Community or Professional editions
set "VS_INSTALL_DIR=%ProgramFiles(x86)%\Microsoft Visual Studio\2019\Enterprise"

AES-256 encryption and decryption in PHP and C#

Update: There is a more secure version available. Details

PHP

<?php

$plaintext = 'My secret message 1234';
@ledunguit
ledunguit / aes_enc_dec.php
Created August 21, 2021 13:27 — forked from turret-io/aes_enc_dec.php
AES encryption/decryption in PHP
<?php
// DEFINE our cipher
define('AES_256_CBC', 'aes-256-cbc');
// Generate a 256-bit encryption key
// This should be stored somewhere instead of recreating it each time
$encryption_key = openssl_random_pseudo_bytes(32);
// Generate an initialization vector
// This *MUST* be available for decryption as well