/*
* 字節編碼轉換
* 首先都需要轉為二級制數組 (ArrayBuffer)
* 然后才能轉換對應的編碼字符
* 前端常見編碼:
* base64:就是將二進制轉為字符串,將每6個字節轉為一個特定的字符串(A-Za-z0-9/+=)。
* hex:將二進制每8個字節轉為對應的2個十六進制的字符串
* */
// utf8 轉為 base64/hex
let output = Buffer.from('utf8的字符串', 'utf8')
console.log(output.toString('base64'))
console.log(output.toString('hex'))
// base64/hex 轉為 utf8
output = Buffer.from('75746638e79a84e5ad97e7aca6e4b8b2', 'hex')
console.log(output.toString('utf8'))
output = Buffer.from('dXRmOOeahOWtl+espuS4sg==', 'base64')
console.log(output.toString('utf8'))
// 讀取文件傳入編碼
input = fs.readFileSync('test.txt') // 默認是二進制 Buffer
console.log(input)
let input = fs.readFileSync('test.txt', 'utf8')
console.log(input)
input = fs.readFileSync('test.txt', 'base64')
console.log(input)
input = fs.readFileSync('test.txt', 'hex')
console.log(input)
/*
* 加密需注意
* 加密數據類型:Buffer 或者 字符串(hex/base64/utf8)
* 參數傳入參數:vi - 填充
* 參數傳入參數:mode - 模式
* 參數傳入參數:padding - 填充類型
* 加密輸出類型:Buffer 或者 字符串(hex/base64/utf8)
* */