Documentation ¶
Index ¶
- func BcryptHash(str string) (string, error)
- func BcryptMatch(hash string, str string) bool
- func BytesAsPointer(b []byte) (unsafe.Pointer, int, int)
- func BytesToString(b []byte) string
- func CharToInt(c byte) int
- func CloseLibrary(handle uintptr) error
- func Cmd(dir string, params []string) (string, error)
- func CmdNoOutput(dir string, params []string) error
- func Cmd_NoWait(dir string, params []string) (cmd *exec.Cmd, err error)
- func ColorPrint(attributes []color.Attribute, strs ...string)
- func Compress(file []string, zipFile string) error
- func CopyDir(src, dst string, overwrite bool) error
- func CopyFile(src, dst string, overwrite bool) error
- func CopyFileOrDir(src, dst string, overwrite bool) error
- func CreateShortcut(filename, dir string) error
- func DetermineEncodingbyPeek(r *bufio.Reader, contentType string) (encoding.Encoding, error)
- func ExecutionFilePath() (string, error)
- func FileIsExist(path string) bool
- func FileOrDirIsExist(path string) bool
- func GatMd5(content []byte) ([]byte, error)
- func GatMd5Hex(content []byte) (string, error)
- func GbkToUtf8(b []byte) []byte
- func GenCertificate() (cert tls.Certificate, err error)
- func GenerateKeyPair() (rawCert, rawKey []byte, err error)
- func GenerateRSAKey(bits int) (Private []byte, Public []byte, err error)
- func GenerateRandomSeed() int64
- func GenerateSM2Key() (pubKey, priKey []byte, err error)
- func GenerateTLSConfig() (*tls.Config, error)
- func GetAllHosts(lanIP string) (map[string]string, error)
- func GetAllNamesInPath(path string) ([]string, error)
- func GetAllNamesRecursive(path string) ([]string, error)
- func GetCStringLen(str unsafe.Pointer) int
- func GetCurrentPath() (string, error)
- func GetExecutionPath() (string, error)
- func GetExecutionPath2() (string, error)
- func GetFileMd5(filename string) ([]byte, error)
- func GetFileNamesRecursive(path string) ([]string, error)
- func GetFileNmaesInPath(path string) ([]string, error)
- func GetFileSha1(filename string) (string, error)
- func GetFolderNamesInPath(path string) ([]string, error)
- func GetFolderNamesRecursive(path string) ([]string, error)
- func GetFormatedTimeFromUnixMilli(rawTime int64, format string) string
- func GetFormatedTimeFromUnixMilliStr(rawTime string, format string) (string, error)
- func GetGateway() (string, error)
- func GetGatewayOutsideIP() (string, error)
- func GetIPv4ByInterfaceName(name string) (net.IP, error)
- func GetIPv6ByInterfaceName(name string) (string, error)
- func GetIpv4MaskByInterfaceName(name string) (net.IPMask, error)
- func GetIpv6MaskByInterfaceName(name string) (net.IPMask, error)
- func GetLocalIP() (string, error)
- func GetMyWLANMAC() (string, error)
- func GetPublicIPV4() (string, error)
- func GetPublicIPV6() (string, error)
- func GetRandomUserAgent() string
- func GetSavedWifi() (string, error)
- func GetSha1(data []byte) ([]byte, error)
- func GetSha256(content []byte) ([]byte, error)
- func GetWLANDefaultGateway() (string, error)
- func GetWifiName() (string, error)
- func GetWifiPassword(wifiname string) (string, error)
- func GetYesterday() time.Time
- func Get_client() (http.Client, error)
- func HexMaskToColonMask(hexMask string) string
- func HexMaskToDotMask(hexMask string) string
- func HexToInt(hex string) (int, error)
- func IsAdmin() bool
- func IsChildDir(parent, child string) bool
- func IsChildDir2(parent, child string) bool
- func IsDir(path string) (is bool, exist bool, err error)
- func IsFile(path string) (is bool, exist bool, err error)
- func LoadX509KeyPairTLSConfig(certFile, keyFile string) (*tls.Config, error)
- func MoveFileOrDir(src, dst string, overwrite bool) error
- func NetWorkStatus() bool
- func OpenLibrary(name string) (uintptr, error)
- func OpenUrl(uri string) error
- func PKCS7Padding(plainText []byte, blockSize int) []byte
- func PKCS7UnPadding(plainText []byte, blockSize int) ([]byte, error)
- func PingAll(srcIP string) error
- func PingToUpdateARP(ip string)
- func PressEnterKeyToContinue()
- func PressEnterKeyToContinue2(ch chan bool)
- func PressEnterKeyToContinueWithTimeout(timeout time.Duration)
- func RSA_DecryptOAEP(cipherText []byte, privateKey []byte, label []byte) ([]byte, error)
- func RSA_DecryptPKCS1v15(cipherText []byte, privateKey []byte) ([]byte, error)
- func RSA_EncryptOAEP(plainText []byte, publicKey []byte, label []byte) ([]byte, error)
- func RSA_EncryptPKCS1v15(plainText []byte, publicKey []byte) ([]byte, error)
- func RandNByte(n int) []byte
- func ReadLines(reader io.Reader) (lines [][]byte, err error)
- func ReadStartWithLastLine(filename string, n int) (string, error)
- func ReadTrimmedLines(reader io.Reader) (lines [][]byte, err error)
- func ReverseRead(name string, lineNum uint) ([]string, error)
- func RsaSignPKCS1v15(src []byte, privateKey []byte) ([]byte, error)
- func RsaVerifyPKCS1v15(src []byte, sign []byte, publicKey []byte) error
- func SM2DecryptAsn1(priKey, cipherText []byte) (plainText []byte, err error)
- func SM2EncryptAsn1(pubKey, plainText []byte) (cipherText []byte, err error)
- func ScanFields(lines []string, fieldSpaceLimit int, recordSpaceLimit int, ...) (fields []string, records [][]string, err error)
- func SplitBySpaceLimit(line string, spaceLimit int) []string
- func SplitBySpaceLimit2(line string, spaceLimit int) []string
- func Str2int32(str string) int32
- func Str2int64(str string) int64
- func Str2uint64(str string) uint64
- func StrLen(str string) int
- func StringAsPointer(s string) (unsafe.Pointer, int)
- func StringToBytes(s string) []byte
- func TransformCoding(rd io.Reader, contentType string) (*transform.Reader, error)
- func UTF8ToGBK(b []byte) []byte
- func UnCompress(zipFile, dest string) error
- func UnicodeStrToUtf8(str string) string
- func UnicodeToUtf8(str []byte) []byte
- func Utf8ToGB18030(text string) string
- func Utf8ToGbk(text string) string
- type BufWriteFlushCloser
- type CbcAESCrypt
- type Pair
- type Result
- type SimpleKV
- type StdBaseLogger
- type StdLogger
- type WriteFlushCloser
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func BcryptMatch ¶
BcryptMatch 对传入字符串和哈希字符串进行比对,str为明文
func BytesToString ¶
BytesToString converts a byte slice to a string without copying. The byte slice must not be modified after the conversion. otherwise, the string may be corrupted.
func CloseLibrary ¶
func CmdNoOutput ¶
Deprecated
等待执行完毕才返回,不反回输出。 dir为cmd命令执行的位置,传入空值则为默认路径。 params中的命令会用空格分隔,一次性提交给cmd。
func Cmd_NoWait ¶
Deprecated
不等待执行完毕就返回(go程序不能立即退出),如果params中有转义字符需要自己处理, dir为cmd命令执行的位置,传入空值则为默认路径。 params中的命令会用空格分隔,一次性提交给cmd。
func ColorPrint ¶
colors描述了后面每个字符串的颜色属性,colors与strs长度必须相同, 注意字符串不要忘了带上空格和换行。
func CopyDir ¶
复制文件夹到指定目录
overwrite为true时,如果目标文件夹存在名字相同的文件则覆盖, overwrite为false时,如果目标文件存在则返回错误。 dst,scr都必须是一个存在的文件夹,否则返回错误。
func CopyFile ¶
复制文件到指定目录
overwrite为true时,如果目标文件存在则覆盖, overwrite为false时,如果目标文件存在则返回错误。 dst必须是一个存在的文件夹,否则返回错误。 scr为文件的绝对或相对路径(包含文件名)。
func CopyFileOrDir ¶
复制文件或文件夹
overwrite为true时,如果目标文件存在则覆盖(dst中的目标文件或文件夹会被直接删除), overwrite为false时,如果目标文件存在则返回错误。 scr,dst 为绝对或相对路径,dst必须是一个文件夹(可以不存在)。
func CreateShortcut ¶
给目录或文件创建快捷方式(filename可以为绝对路径也可以为相对路径,dir必须是绝对路径)
func DetermineEncodingbyPeek ¶
自动检测html编码,不会减少缓冲器的内容, 得到编码器后用transform.NewReader解码为utf-8
func ExecutionFilePath ¶
获取当前程序源代码的详细路径 D:/Go/workspace/port/network_learn/server/server.go
func GenCertificate ¶
func GenCertificate() (cert tls.Certificate, err error)
func GenerateKeyPair ¶
func GenerateRSAKey ¶
生成RSA私钥和公钥,pem格式
func GenerateSM2Key ¶
func GenerateTLSConfig ¶
Setup a bare-bones TLS config for the server
例如:添加quic协议支持 config.NextProtos = append(config.NextProtos, "quic")
func GetAllHosts ¶
获取局域网内所有主机IP与MAC地址(通过ping命令更新arp表,不包含自己), 通过LanIP获取局域网IP段,通过PingAll更新arp表。 返回map[ip]mac。 更好的通用方法https://studygolang.com/articles/1202 https://github.com/mnhkahn/go_code/blob/master/fing.go
func GetAllNamesInPath ¶
获取path路径下的文件(含后缀)和文件夹名称
func GetAllNamesRecursive ¶
递归获取path下所有文件和文件夹 path决定返回的文件路径是绝对路径还是相对路径。
func GetCStringLen ¶
func GetExecutionPath2 ¶
获取当前程序的执行路径(包含可执行文件名称) C:\Users\*\AppData\Local\Temp\*\exe\main.exe 或 .\main.exe (读取命令参数的方式)
func GetFileNamesRecursive ¶
递归获取path下所有文件(包含子文件夹中的文件)。 path决定返回的文件路径是绝对路径还是相对路径。
func GetFileNmaesInPath ¶
获取path下所有文件名称(含后缀,不含路径)
func GetFolderNamesInPath ¶
获取path路径下的文件夹名称(不含路径)
func GetFolderNamesRecursive ¶
递归获取path下所有文件夹(包含子文件夹) path决定返回的文件路径是绝对路径还是相对路径。
func GetFormatedTimeFromUnixMilli ¶
时间戳毫秒 -> format time(Local)。 if rawTime is "" , return current time。
func GetFormatedTimeFromUnixMilliStr ¶
时间戳毫秒 -> format time(Local)。 if rawTime is "" , return current time。
func GetGateway ¶
获取网关地址 还可以通过构建ICMP报文实现路由追踪(traceroute),记录访问某个网站经过的路径,那么第一条路径就是访问路由器
func GetIPv4ByInterfaceName ¶
获取指定网卡的ipv4地址,如WLAN
func GetIPv6ByInterfaceName ¶
获取指定网卡的ipv6地址,如WLAN
func GetIpv4MaskByInterfaceName ¶
获取指定网卡的ipv4子网掩码
func GetIpv6MaskByInterfaceName ¶
获取指定网卡的ipv6子网掩码
func GetLocalIP ¶
func GetPublicIPV4 ¶
func GetPublicIPV6 ¶
func HexMaskToColonMask ¶
转换十六进制的子网掩码为冒号分隔的十六进制(请确保传入的是十六进制的子网掩码)
func HexMaskToDotMask ¶
转换十六进制的子网掩码为点分十进制(请确保传入的是十六进制的子网掩码)
func IsChildDir2 ¶
判断child是否是parent的子文件夹(为了性能只是简单的判断前缀,需要保证路径分隔符一致)
func MoveFileOrDir ¶
移动文件或文件夹到指定目录
overwrite为true时,如果目标文件存在则覆盖(dst中的目标文件或文件夹会被直接删除), overwrite为false时,如果目标文件存在则返回错误。 dst必须是一个存在的文件夹,否则返回错误。 scr为的绝对或相对路径。
func NetWorkStatus ¶
func NetWorkStatus() bool
func OpenLibrary ¶
func PKCS7Padding ¶
PKCS7是兼容PKCS5的,PKCS5相当于PKCS7的一个子集。
func PingToUpdateARP ¶
func PingToUpdateARP(ip string)
func PressEnterKeyToContinue ¶
func PressEnterKeyToContinue()
func PressEnterKeyToContinue2 ¶
func PressEnterKeyToContinue2(ch chan bool)
func PressEnterKeyToContinueWithTimeout ¶
Press Enter Key to Continue with Timeout,超时则退出程序
func RSA_DecryptOAEP ¶
RSA解密,填充模式OAEP,private为私钥的pem格式
func RSA_DecryptPKCS1v15 ¶
RSA解密,填充模式PKCS1v15,private为私钥的pem格式
func RSA_EncryptOAEP ¶
RSA加密,填充方式为OAEP,publicKey为公钥的pem格式。 对结果进行base64编码可以提高可读性。
The random parameter is used as a source of entropy to ensure that encrypting the same message twice doesn't result in the same ciphertext.
The label parameter may contain arbitrary data that will not be encrypted, but which gives important context to the message. For example, if a given public key is used to encrypt two types of messages then distinct label values could be used to ensure that a ciphertext for one purpose cannot be used for another by an attacker. If not required it can be empty.
func RSA_EncryptPKCS1v15 ¶
RSA加密,填充方式为PKCS1v15,publicKey为公钥的pem格式。 对结果进行base64编码可以提高可读性。
The message must be no longer than the length of the public modulus minus 11 bytes.
WARNING: use of this function to encrypt plaintexts other than session keys is dangerous. Use RSA OAEP in new protocols.
在RSA攻击中,存在着“小明文攻击“的方式; 在明文够小时,密文也够小,直接开e次方即可; 在明文有点小时,如果e也较小,可用pow(m,e)=n*k+c穷举k尝试爆破,所以,比如说,在选择明文攻击中,单纯的RSA非常容易被破解。 于是,我们就像将密文进行一下填充,最好让密文都等长。 但是填充方式也是很讲究的;不好的填充规则往往仅仅有限的增加了攻击的难度,或者难以实现等长密文。 于是我们就查到了OAEP——最优非对称加密填充。
func ReadStartWithLastLine ¶
读取倒数第n行(n从1开始), 若n大于文件行数则返回错误io.EOF。
func ReadTrimmedLines ¶
ReadTrimmedLines 从给定的 io.Reader 中读取内容,并按行分割成字节切片。 开头和结尾的空白行将被去除。 返回值 lines 是一个二维字节切片,每个元素代表一行的内容。 返回值 err 表示读取过程中是否发生错误。
func ReverseRead ¶
从文件末尾按行读取文件。 name:文件路径 lineNum:读取行数(超过文件行数则读取全文)。 最后一行为空也算读取了一行,会返回此行为空串,若全是空格也会原样返回。 返回的每一行都不包含换行符号。
func RsaSignPKCS1v15 ¶
rsa数字签名,private为私钥的pem格式
func RsaVerifyPKCS1v15 ¶
rsa数字验签,publicKey为公钥的pem格式
func SM2DecryptAsn1 ¶
func SM2EncryptAsn1 ¶
返回asn.1编码格式的密文内容
func ScanFields ¶
func ScanFields( lines []string, fieldSpaceLimit int, recordSpaceLimit int, fieldKeyWords map[string]func(string) bool, ) (fields []string, records [][]string, err error)
ScanFields 函数的作用是解析一组文本行(lines),将第一行作为字段名称(fields)提取, 并将剩余的行解析为记录(records),每条记录是字段值的集合。 这个函数可以处理有限数量的空格字符来分隔记录中的字段。 函数的参数: lines: 一个字符串切片,包含要解析的文本行。 recordSpaceLimit: 一个整数,指定字段之间的最小空格数来认为字段是分开的。 如果为0,则使用任意数量的空格来分隔字段。 需要保证第一行是字段名, 且后面每行都是有效的记录。
例如,下面的文本行: Name Access Availability BlockSize
C: 3 0 4096
D: 3 4096
E: 3 1 4096
F: 1 4096
将被解析为: fields = ["Name", "Access", "Availability", "BlockSize"]
records = [
["C:", "3", "0", "4096"], ["D:", "3", "", "4096"], ["E:", "3", "1", "4096"], ["F:", "", "1", "4096"],
]
func SplitBySpaceLimit ¶
func SplitBySpaceLimit2 ¶
func StringToBytes ¶
func TransformCoding ¶
转码utf-8,contentType 可以传空值"" DetermineEncoding determines the encoding of an HTML document by examining up to the first 1024 bytes of content and the declared Content-Type.
Types ¶
type BufWriteFlushCloser ¶
type BufWriteFlushCloser struct {
// contains filtered or unexported fields
}
实现Close时自动Flush再Close
func NewBufWriteCloser ¶
func NewBufWriteCloser(w io.WriteCloser) *BufWriteFlushCloser
func NewBufWriteCloserSize ¶
func NewBufWriteCloserSize(w io.WriteCloser, size int) *BufWriteFlushCloser
func (*BufWriteFlushCloser) Close ¶
func (b *BufWriteFlushCloser) Close() error
Close closes the BufWriteFlushCloser, flushing the buffer and closing the underlying writer.
func (*BufWriteFlushCloser) Flush ¶
func (b *BufWriteFlushCloser) Flush() error
type CbcAESCrypt ¶
type CbcAESCrypt struct {
// contains filtered or unexported fields
}
初始化向量(IV,Initialization Vector)是许多任务作模式中用于将加密随机化的一个位块, 由此即使同样的明文被多次加密也会产生不同的密文,避免了较慢的重新产生密钥的过程。 对于CBC和CFB,重用IV会导致泄露明文首个块的某些信息,亦包括两个不同消息中相同的前缀。 对于OFB和CTR而言,重用IV会导致完全失去安全性。另外,在CBC模式中,IV在加密时必须是无法预测的;
AES CBC加密时,用iv和key去加密第一个块,然后用第一个块的加密数据作为下一个块的iv,依次迭代。 解密时,用n-1个块的加密数据作为iv和key去解密第n个块(n>1),只有第一个块才会用加密时的iv去解密第一个块。 所以如果解密时,使用了错误的iv,出问题的数据只有第一个块。
分组加密在对明文加密的时候,并不是把整个明文一股脑加密成一整段密文, 而是把明文拆分成一个个独立的明文块, AES的每一个明文块长度128bit(16字节),则记块长度为BlockSize = 16。 初始化向量IV是一个长度为BlockSize的随机字节数组,对应一个伪随机数。
func NewAESCrypt ¶
func NewAESCrypt(SecretKey []byte) (*CbcAESCrypt, error)
NewAESCryptFromHex 创建AES加密器。 第三方库使用 CBC模式,PKCS5填充。
func NewAESCryptFromHex ¶
func NewAESCryptFromHex(HexSecretKey string) (*CbcAESCrypt, error)
NewAESCryptFromHex 创建AES加密器, HexSecretKey为16进制字符串 CBC模式,PKCS5填充
type SimpleKV ¶
type SimpleKV struct {
// contains filtered or unexported fields
}
func NewSimpleKV ¶
type StdBaseLogger ¶
type StdBaseLogger interface { Errorf(string, ...interface{}) Errorln(...interface{}) Warnf(string, ...interface{}) Warnln(...interface{}) Infof(string, ...interface{}) Infoln(...interface{}) Debugf(string, ...interface{}) Debugln(...interface{}) Tracef(string, ...interface{}) Traceln(...interface{}) }
type StdLogger ¶
type StdLogger interface { StdBaseLogger Panicf(string, ...interface{}) Panicln(...interface{}) }
type WriteFlushCloser ¶
type WriteFlushCloser interface { io.WriteCloser Flush() error }
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
usb
|
|
hid
HID package to access Human Interface Devices.
|
HID package to access Human Interface Devices. |
usbdrivedetector
Package usbdrivedetector detects all USB storage devices connected to a computer.
|
Package usbdrivedetector detects all USB storage devices connected to a computer. |