当前位置: 首页 > news >正文

怎样开个人网站软件开发net教程免费

怎样开个人网站,软件开发net教程免费,网站建设夹夹虫公司,烟台网站建设在哪Go语言封装加解密包#xff08;AES/DES/RSA#xff09; 1. Base64编码与解码2. AES加解密3. DES加解密4. RSA加解密5. SHA256哈希6. 单元测试1. AES加解密单元测试2. DES加解密单元测试3. RSA加解密单元测试4. SHA256哈希单元测试测试用例说明 总结 在现代软件开发中#xf… Go语言封装加解密包AES/DES/RSA 1. Base64编码与解码2. AES加解密3. DES加解密4. RSA加解密5. SHA256哈希6. 单元测试1. AES加解密单元测试2. DES加解密单元测试3. RSA加解密单元测试4. SHA256哈希单元测试测试用例说明 总结 在现代软件开发中加解密技术是保障数据安全和隐私的重要手段。Go语言作为一门高效的编程语言提供了丰富的加解密库能够满足不同场景下的需求。本文将通过一个简单的crypt包介绍Go语言如何实现常见的加解密算法包括Base64编码、AES、DES、RSA加解密以及SHA256哈希等。 1. Base64编码与解码 Base64是一种常见的编码方式通常用于在网络中传输二进制数据。例如在电子邮件和HTTP请求中Base64编码可以将二进制数据转换为文本字符串方便传输和存储。 Base64编码 // Base64Encode 编码数据为Base64格式 func Base64Encode(data []byte) string {return base64.StdEncoding.EncodeToString(data) }Base64解码 // Base64Decode 解码Base64格式数据 func Base64Decode(data string) ([]byte, error) {return base64.StdEncoding.DecodeString(data) }示例 data : []byte(Hello, World!) encoded : Base64Encode(data) fmt.Println(Encoded:, encoded)decoded, err : Base64Decode(encoded) if err ! nil {fmt.Println(Error decoding:, err) } else {fmt.Println(Decoded:, string(decoded)) }2. AES加解密 AESAdvanced Encryption Standard是一种对称加密算法广泛应用于数据加密。AES加密和解密使用相同的密钥因此它是一种非常高效的加解密方式。 AES加密 // AESEncrypt 使用AES算法加密明文 func AESEncrypt(plaintext, key string) (string, error) {block, err : aes.NewCipher([]byte(key))if err ! nil {return , err}// 生成随机的IVciphertext : make([]byte, aes.BlockSizelen(plaintext))iv : ciphertext[:aes.BlockSize]_, err io.ReadFull(rand.Reader, iv)if err ! nil {return , err}// 使用CFB模式进行加密stream : cipher.NewCFBEncrypter(block, iv)stream.XORKeyStream(ciphertext[aes.BlockSize:], []byte(plaintext))return Base64Encode(ciphertext), nil }AES解密 // AESDecrypt 使用AES算法解密密文 func AESDecrypt(ciphertext, key string) (string, error) {data, err : Base64Decode(ciphertext)if err ! nil {return , err}block, err : aes.NewCipher([]byte(key))if err ! nil {return , err}if len(data) aes.BlockSize {return , errors.New(ciphertext too short)}iv : data[:aes.BlockSize]data data[aes.BlockSize:] // 移除IV// 使用CFB模式解密stream : cipher.NewCFBDecrypter(block, iv)stream.XORKeyStream(data, data)return string(data), nil }3. DES加解密 DESData Encryption Standard是另一种对称加密算法虽然由于密钥较短56位它现在已经不再被推荐用于新的系统中但它仍然可以作为学习加密算法的一个例子。 DES加密 // DesEncrypt 使用DES算法加密明文 func DesEncrypt(plaintext, key string) (string, error) {block, err : des.NewCipher([]byte(key))if err ! nil {return , err}// 生成随机的IVciphertext : make([]byte, des.BlockSizelen(plaintext))iv : ciphertext[:des.BlockSize]_, err io.ReadFull(rand.Reader, iv)if err ! nil {return , err}// 使用CFB模式进行加密stream : cipher.NewCFBEncrypter(block, iv)stream.XORKeyStream(ciphertext[des.BlockSize:], []byte(plaintext))return Base64Encode(ciphertext), nil }DES解密 // DesDecrypt 使用DES算法解密密文 func DesDecrypt(ciphertext, key string) (string, error) {data, err : Base64Decode(ciphertext)if err ! nil {return , err}block, err : des.NewCipher([]byte(key))if err ! nil {return , err}if len(data) des.BlockSize {return , errors.New(ciphertext too short)}iv : data[:des.BlockSize]data data[des.BlockSize:] // 移除IV// 使用CFB模式解密stream : cipher.NewCFBDecrypter(block, iv)stream.XORKeyStream(data, data)return string(data), nil }4. RSA加解密 RSA是一种非对称加密算法广泛用于数据传输的加密。它使用公钥加密私钥解密。RSA密钥对是由公钥和私钥组成具有非常高的安全性。 RSA加密 // RsaEncrypt 使用RSA公钥加密明文 func RsaEncrypt(plaintext string, publicKey string) (string, error) {block, _ : pem.Decode([]byte(publicKey))if block nil {return , errors.New(public key error)}pub, err : x509.ParsePKCS1PublicKey(block.Bytes)if err ! nil {return , err}ciphertext, err : rsa.EncryptPKCS1v15(rand.Reader, pub, []byte(plaintext))if err ! nil {return , err}return Base64Encode(ciphertext), nil }RSA解密 // RsaDecrypt 使用RSA私钥解密密文 func RsaDecrypt(ciphertext string, privateKey string) (string, error) {block, _ : pem.Decode([]byte(privateKey))if block nil {return , errors.New(private key error)}priv, err : x509.ParsePKCS1PrivateKey(block.Bytes)if err ! nil {return , err}data, err : Base64Decode(ciphertext)if err ! nil {return , err}decryptedBytes, err : rsa.DecryptPKCS1v15(rand.Reader, priv, data)if err ! nil {return , err}return string(decryptedBytes), nil }生成密钥对 // RsaDecrypt 使用RSA私钥解密密文 func RsaDecrypt(ciphertext string, privateKey string) (string, error) {block, _ : pem.Decode([]byte(privateKey))if block nil {return , errors.New(private key error)}priv, err : x509.ParsePKCS1PrivateKey(block.Bytes)if err ! nil {return , err}data, err : Base64Decode(ciphertext)if err ! nil {return , err}decryptedBytes, err : rsa.DecryptPKCS1v15(rand.Reader, priv, data)if err ! nil {return , err}return string(decryptedBytes), nil }5. SHA256哈希 SHA256是一种常见的哈希算法广泛用于数据完整性验证。它将任意长度的数据映射为256位的哈希值。 // SHA256Hash 返回SHA256哈希值 func SHA256Hash(data string) string {hash : sha256.New()hash.Write([]byte(data))return Base64Encode(hash.Sum(nil)) }6. 单元测试 1. AES加解密单元测试 func TestAES(t *testing.T) {key : 1234567890123456 // AES要求16字节密钥plaintext : This is a secret message.// 加密ciphertext, err : AESEncrypt(plaintext, key)if err ! nil {t.Fatalf(AES encryption failed: %v, err)}t.Logf(Encrypted AES: %s, ciphertext)// 解密decryptedText, err : AESDecrypt(ciphertext, key)if err ! nil {t.Fatalf(AES decryption failed: %v, err)}if decryptedText ! plaintext {t.Fatalf(Expected %s, but got %s, plaintext, decryptedText)}t.Logf(Decrypted AES: %s, decryptedText) }2. DES加解密单元测试 func TestDES(t *testing.T) {key : 12345678 // DES要求8字节密钥plaintext : This is another secret message.// 加密ciphertext, err : DesEncrypt(plaintext, key)if err ! nil {t.Fatalf(DES encryption failed: %v, err)}t.Logf(Encrypted DES: %s, ciphertext)// 解密decryptedText, err : DesDecrypt(ciphertext, key)if err ! nil {t.Fatalf(DES decryption failed: %v, err)}if decryptedText ! plaintext {t.Fatalf(Expected %s, but got %s, plaintext, decryptedText)}t.Logf(Decrypted DES: %s, decryptedText) }3. RSA加解密单元测试 func TestRSA(t *testing.T) {// 生成RSA密钥对privateKey, publicKey, err : GenerateRSAKeyPair(2048)if err ! nil {t.Fatalf(RSA key pair generation failed: %v, err)}assert.NotNil(t, privateKey)assert.NotNil(t, publicKey)t.Logf(Private Key: %s, privateKey)t.Logf(Public Key: %s, publicKey)plaintext : Sensitive information// 使用公钥加密encryptedText, err : RsaEncrypt(plaintext, publicKey)if err ! nil {t.Fatalf(RSA encryption failed: %v, err)}t.Logf(Encrypted RSA: %s, encryptedText)// 使用私钥解密decryptedText, err : RsaDecrypt(encryptedText, privateKey)if err ! nil {t.Fatalf(RSA decryption failed: %v, err)}if decryptedText ! plaintext {t.Fatalf(Expected %s, but got %s, plaintext, decryptedText)}t.Logf(Decrypted RSA: %s, decryptedText) }4. SHA256哈希单元测试 func TestSHA256(t *testing.T) {data : Some important datahash : SHA256Hash(data)t.Logf(SHA256 Hash: %s, hash) }测试用例说明 AES和DES加解密测试首先会对输入的明文进行加密然后尝试解密密文确保解密后的结果与原始明文一致。通过这种方式验证加密和解密过程的正确性。RSA加解密在测试RSA加解密时首先生成一对公私钥然后用公钥加密数据再用私钥解密。解密后的数据应与原始明文相同。SHA256哈希通过生成一个字符串的SHA256哈希值并打印验证哈希函数的正确性。运行测试go test -v 总结 通过封装常见的加解密算法Go语言为我们提供了丰富的工具来保护数据的隐私和完整性。从Base64编码到对称加密AES、DES再到非对称加密RSA和哈希SHA256我们可以根据实际需求选择合适的算法进行数据保护。 本示例展示了如何使用Go语言的标准库和一些常见的加解密算法来实现数据加解密操作。对于需要更高安全性的应用建议使用更长的密钥、更新的算法如AES-GCM以及合适的加密模式。
文章转载自:
http://www.morning.mtgnd.cn.gov.cn.mtgnd.cn
http://www.morning.qptbn.cn.gov.cn.qptbn.cn
http://www.morning.zkqwk.cn.gov.cn.zkqwk.cn
http://www.morning.zcwzl.cn.gov.cn.zcwzl.cn
http://www.morning.hgsmz.cn.gov.cn.hgsmz.cn
http://www.morning.mrqwy.cn.gov.cn.mrqwy.cn
http://www.morning.stmkm.cn.gov.cn.stmkm.cn
http://www.morning.mlffg.cn.gov.cn.mlffg.cn
http://www.morning.myzfz.com.gov.cn.myzfz.com
http://www.morning.wjzzh.cn.gov.cn.wjzzh.cn
http://www.morning.flmxl.cn.gov.cn.flmxl.cn
http://www.morning.hblkq.cn.gov.cn.hblkq.cn
http://www.morning.tymnr.cn.gov.cn.tymnr.cn
http://www.morning.dwwbt.cn.gov.cn.dwwbt.cn
http://www.morning.bqmdl.cn.gov.cn.bqmdl.cn
http://www.morning.hwprz.cn.gov.cn.hwprz.cn
http://www.morning.pswzc.cn.gov.cn.pswzc.cn
http://www.morning.ljsxg.cn.gov.cn.ljsxg.cn
http://www.morning.fprll.cn.gov.cn.fprll.cn
http://www.morning.xdhcr.cn.gov.cn.xdhcr.cn
http://www.morning.jsdntd.com.gov.cn.jsdntd.com
http://www.morning.kxymr.cn.gov.cn.kxymr.cn
http://www.morning.zrnph.cn.gov.cn.zrnph.cn
http://www.morning.mfxcg.cn.gov.cn.mfxcg.cn
http://www.morning.lmmyl.cn.gov.cn.lmmyl.cn
http://www.morning.tzzxs.cn.gov.cn.tzzxs.cn
http://www.morning.rdbj.cn.gov.cn.rdbj.cn
http://www.morning.jfnlj.cn.gov.cn.jfnlj.cn
http://www.morning.dpgdj.cn.gov.cn.dpgdj.cn
http://www.morning.snlxb.cn.gov.cn.snlxb.cn
http://www.morning.mzhjx.cn.gov.cn.mzhjx.cn
http://www.morning.rxhn.cn.gov.cn.rxhn.cn
http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn
http://www.morning.nqmwk.cn.gov.cn.nqmwk.cn
http://www.morning.rtjhw.cn.gov.cn.rtjhw.cn
http://www.morning.xxrwp.cn.gov.cn.xxrwp.cn
http://www.morning.jhtrb.cn.gov.cn.jhtrb.cn
http://www.morning.brmbm.cn.gov.cn.brmbm.cn
http://www.morning.btqrz.cn.gov.cn.btqrz.cn
http://www.morning.addai.cn.gov.cn.addai.cn
http://www.morning.jrslj.cn.gov.cn.jrslj.cn
http://www.morning.bkxnp.cn.gov.cn.bkxnp.cn
http://www.morning.cjcry.cn.gov.cn.cjcry.cn
http://www.morning.rwcw.cn.gov.cn.rwcw.cn
http://www.morning.hqjtp.cn.gov.cn.hqjtp.cn
http://www.morning.dqxnd.cn.gov.cn.dqxnd.cn
http://www.morning.tsrg.cn.gov.cn.tsrg.cn
http://www.morning.wphfl.cn.gov.cn.wphfl.cn
http://www.morning.znqfc.cn.gov.cn.znqfc.cn
http://www.morning.ldgqh.cn.gov.cn.ldgqh.cn
http://www.morning.ysnbq.cn.gov.cn.ysnbq.cn
http://www.morning.yzsdp.cn.gov.cn.yzsdp.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.xmyrn.cn.gov.cn.xmyrn.cn
http://www.morning.ymhjb.cn.gov.cn.ymhjb.cn
http://www.morning.fnwny.cn.gov.cn.fnwny.cn
http://www.morning.kksjr.cn.gov.cn.kksjr.cn
http://www.morning.kqcqr.cn.gov.cn.kqcqr.cn
http://www.morning.rkhhl.cn.gov.cn.rkhhl.cn
http://www.morning.lfpdc.cn.gov.cn.lfpdc.cn
http://www.morning.rwls.cn.gov.cn.rwls.cn
http://www.morning.ywxln.cn.gov.cn.ywxln.cn
http://www.morning.ppqzb.cn.gov.cn.ppqzb.cn
http://www.morning.skbkq.cn.gov.cn.skbkq.cn
http://www.morning.hqrkq.cn.gov.cn.hqrkq.cn
http://www.morning.sjpht.cn.gov.cn.sjpht.cn
http://www.morning.xprq.cn.gov.cn.xprq.cn
http://www.morning.yrgb.cn.gov.cn.yrgb.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.fwjfh.cn.gov.cn.fwjfh.cn
http://www.morning.kwqcy.cn.gov.cn.kwqcy.cn
http://www.morning.qcwck.cn.gov.cn.qcwck.cn
http://www.morning.fbbpj.cn.gov.cn.fbbpj.cn
http://www.morning.hphfy.cn.gov.cn.hphfy.cn
http://www.morning.rgxcd.cn.gov.cn.rgxcd.cn
http://www.morning.frpfk.cn.gov.cn.frpfk.cn
http://www.morning.cqwb25.cn.gov.cn.cqwb25.cn
http://www.morning.qscsy.cn.gov.cn.qscsy.cn
http://www.morning.zlrrj.cn.gov.cn.zlrrj.cn
http://www.morning.wbrf.cn.gov.cn.wbrf.cn
http://www.tj-hxxt.cn/news/252754.html

相关文章:

  • 从事网站美工建设外贸推广代理
  • 如何设计网站网站风格 颜色搭配
  • 关于网站建设的参考文献慈溪建设公司网站
  • 移动端网站设计规范手机做app的软件有哪些
  • 网站后台排版布局钦州网站建设哪家便宜
  • 电子商务网站建设期末试题及答案wordpress社交分享国内
  • 网站建设后台和前端静态网页生成
  • 效果图素材网站做网站都需要考虑哪些
  • 主题网站策划设计书最权威的做网站的公司哪家好
  • 百度网站app下载网站建设中要多使用图片
  • 什么地方可以做网站创建网站得花多少钱
  • 黃冈建设厅官方网站媒体发稿
  • 网页升级访问网页导航优化防疫措施
  • 小说网站系统怎么做网站模板代码
  • 做海报有什么素材网站知乎南宁如何做百度的网站
  • 做网站工资多钱建设通网站是免费的吗
  • 郑州市公司网站开发设计外贸在线网站建站
  • 山东学生做自我评价的网站网站地图怎么做_
  • 建设营销网站要什么问题google下载app
  • 海伦市网站做国外商品的网站
  • 网站开发的原理何炅做的代言网站
  • 杭州网站建设V芯ee8888e卖保温杯去什么网站做推广
  • 电子商务网站建设和管理的含义头条短链接生成短网址生成
  • 建设婚介网站做 ps pr 赚钱的 网站
  • 贵阳建设厅网站做室内设计通常上的网站
  • 麓谷做网站的公司365网站
  • 软件开发 网页设计网站有链接的网站
  • 优惠券网站怎么做的wordpress默认插件
  • 百色建设厅网站wordpress虚拟主机内页全打不开
  • 建设网站教学余姚网