热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

erlangrsa加密解密

为什么80%的码农都做不了架构师?-module(test).-export([encrypt0,decrypt1]).encrypt()-PemBin

为什么80%的码农都做不了架构师?>>>   hot3.png

-module(test).-export([encrypt/0, decrypt/1]).encrypt() ->PemBin &#61; <<"-----BEGIN RSA PRIVATE KEY-----\nMIICXAIBAAKBgQC1pJLB45JEyit2&#43;vOeZDIhnICGuf4h/w4OEwDn8C0BO84nLpoh\n7O8idxizwCkvmojdytgHc&#43;x4XFdVfzT8ZEKupH97yK8GXw0hQbMbRJssaheU9lsb\nAoSUV7V5bjckqfIdn2AE4jvus9nNo9KWgJoVbZYQGefMmBRNLLIvJbMntwIDAQAB\nAoGAXhtvtWhUBbPApRoLUcqTdnqA1ExUcASWoZAS7hevGW6EtiQc0urQUkjl0WsD\na5hixJYtKl9S6mDdFnybVRAUw0m3aDMZYiHZDk/f7YL&#43;Rz7piHcbzB68x8hSIfDc\n5ylEyohLnDOzq0TcGsn6jcFnCqSBe/cTXx6ALapK45e34fECQQDxRqqzwD2nhDhZ\nBDMzQYldiONeaj&#43;sZyOcfRz6KUc3nWyAvWYZGB1STAb7WPv0Loo2TFLELMQsz55l\n5vFW8AeDAkEAwLpJnwvoZ3hhu1K3fZsA6IMeGUnYWL9AaMClLEVLy4o1pI2Bbn/q\nG2UYS&#43;DiIULYOp6d82dqyCGnBbNELn00vQJAAw5ADzK6FSsJg6cX9ug3kyWuq31w\n/P/5ZXv4J/rp2fx2aVL8vgieJnKsC/beigMk4PcqfS2L9n1Spju8hrtXfQJBALV2\nMR9pTNcvh4WiqlW/filuWwageu2ElZaL3HlEfcsVRNC806NBGSHWG/xFr2R11bXL\n5xhoxSfOV76MPaQwC1kCQCtixwm5s7LqYdbCKmrQrPJJzBamE7nNfAPFphG4mR2/\n4K1oO&#43;byCdSzw0KOX9rHqeOcgom&#43;vybRC5NUMxpe1jk&#61;\n-----END RSA PRIVATE KEY-----">>,[DSAEntry] &#61; public_key:pem_decode(PemBin),PrivateKey &#61; public_key:pem_entry_decode(DSAEntry),{&#39;RSAPrivateKey&#39;, _Version, Modulus, _PublicExponent, _PrivateExponent, _Prime1, _Prime2, _Exponent1, _Exponent2, _Coefficient, _OtherPrimeInfos} &#61; PrivateKey,Size &#61; byte_size(binary:encode_unsigned(Modulus)) - 11,Msg &#61; <<"devicefeweger5hy67i89kjuytegrwfvcqe34567j8k9loikudesadfdsfrt564trefdg5trvfdvtgbnyhjunyhbgfvcdolikujhytr675rwfecsdvrtvfbrthnuy5nbtervferwbtynumnybregfvwfdgergrtyh7ujh56tgrvwefecefvgyj6uyrthgtvewcdevwt5j7uyhrtgvf4y6u7hyrtevceeefbtyu5jntdevicefewegt">>,Chunks &#61; split_packet(Size, Msg),EnChunks &#61; lists:map(fun(A) ->public_key:encrypt_private(A, PrivateKey)end, Chunks),list_to_binary(EnChunks).decrypt(Encode) ->PemBin &#61; <<"-----BEGIN PUBLIC KEY-----\nMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQC1pJLB45JEyit2&#43;vOeZDIhnICG\nuf4h/w4OEwDn8C0BO84nLpoh7O8idxizwCkvmojdytgHc&#43;x4XFdVfzT8ZEKupH97\nyK8GXw0hQbMbRJssaheU9lsbAoSUV7V5bjckqfIdn2AE4jvus9nNo9KWgJoVbZYQ\nGefMmBRNLLIvJbMntwIDAQAB\n-----END PUBLIC KEY-----">>,[DSAEntry] &#61; public_key:pem_decode(PemBin),PublicKey &#61; public_key:pem_entry_decode(DSAEntry),{&#39;RSAPublicKey&#39;, Modulus, _PublicExponent} &#61; PublicKey,Size &#61; byte_size(binary:encode_unsigned(Modulus)),Chunks &#61; split_packet(Size, Encode),EnChunks &#61; lists:map(fun(A) ->public_key:decrypt_public(A, PublicKey)end, Chunks),list_to_binary(EnChunks).split_packet(Size, P) when byte_size(P) >&#61; Size->{Chunk, Rest} &#61; split_binary(P, Size),[Chunk|split_packet(Size, Rest)];
split_packet(_Size, <<>>) ->[];
split_packet(_Size, P) ->[P].

在控制台测试

> c(test).
{ok, test}
> EncryptS &#61; test:encrypt().
<<....>>
> test:decrypt(EncryptS).

今天才知道&#xff0c;rsa加密解密是有长度限制的&#xff0c;调试了好长时间&#xff0c;莫名其妙不知道为什么会报错&#xff0c;搜索到其他的语言写的demo才知道

 


转:https://my.oschina.net/csq/blog/2050919



推荐阅读
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 秒建一个后台管理系统?用这5个开源免费的Java项目就够了
    秒建一个后台管理系统?用这5个开源免费的Java项目就够了 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 手指触控|Android电容屏幕驱动调试指南
    手指触控|Android电容屏幕驱动调试指南 ... [详细]
  • Linux CentOS 7 安装PostgreSQL 9.5.17 (源码编译)
    近日需要将PostgreSQL数据库从Windows中迁移到Linux中,LinuxCentOS7安装PostgreSQL9.5.17安装过程特此记录。安装环境&#x ... [详细]
  • [转]doc,ppt,xls文件格式转PDF格式http:blog.csdn.netlee353086articledetails7920355确实好用。需要注意的是#import ... [详细]
  • 如何在Linux服务器上配置MySQL和Tomcat的开机自动启动
    在Linux服务器上部署Web项目时,通常需要确保MySQL和Tomcat服务能够随系统启动而自动运行。本文将详细介绍如何在Linux环境中配置MySQL和Tomcat的开机自启动,以确保服务的稳定性和可靠性。通过合理的配置,可以有效避免因服务未启动而导致的项目故障。 ... [详细]
  • 优化Vite 1.0至2.0升级过程中遇到的某些代码块过大问题解决方案
    本文详细探讨了在将项目从 Vite 1.0 升级到 2.0 的过程中,如何解决某些代码块过大的问题。通过具体的编码示例,文章提供了全面的解决方案,帮助开发者有效优化打包性能。 ... [详细]
  • 在 Android 开发中,`android:exported` 属性用于控制组件(如 Activity、Service、BroadcastReceiver 和 ContentProvider)是否可以被其他应用组件访问或与其交互。若将此属性设为 `true`,则允许外部应用调用或与之交互;反之,若设为 `false`,则仅限于同一应用内的组件进行访问。这一属性对于确保应用的安全性和隐私保护至关重要。 ... [详细]
  • 系统转换的三种方法及其具体应用分析
    系统转换是信息技术领域中常见的任务,本文详细探讨了三种主要的系统转换方法及其具体应用场景。这些方法包括:代码迁移、数据迁移和平台迁移。文章通过实例分析了每种方法的优势和局限性,并提供了实际操作中的注意事项和技术要点。例如,代码迁移适用于从VB6获取网页源码,数据迁移在Ubuntu中用于隐藏侧边栏,而平台迁移则涉及Tomcat 6.0的使用和谷歌爬虫的测试。此外,文章还讨论了蓝翰互动PHP面试和5118 SEO工具在系统转换中的应用,为读者提供了全面的技术参考。 ... [详细]
  • 本文深入探讨了MDK链接脚本的应用与优化技巧。首先,文章介绍了链接脚本的基本概念及其在嵌入式系统开发中的重要性。接着,通过具体实例详细分析了链接脚本的结构和功能,特别是在程序在FLASH中运行时,如何优化链接脚本以提高系统性能。此外,文章还讨论了无需将程序加载到SRAM中的技术细节,为开发者提供了实用的参考和指导。 ... [详细]
  • 目前我有两张 BMP 图像文件 a.bmp 和 b.bmp,希望将它们按照以下方式进行融合:首先提取 a.bmp 的所有奇数行像素(如第 1、3、5 行),接着获取 b.bmp 的所有偶数行像素(如第 2、4、6 行)。最终目标是将这些行像素交替排列,生成一张新的图像。此过程需要确保像素顺序正确,并保持图像的整体结构和质量。 ... [详细]
  • Hadoop平台警告解决:无法加载本机Hadoop库的全面应对方案
    本文探讨了在Hadoop平台上遇到“无法加载本机Hadoop库”警告的多种解决方案。首先,通过修改日志配置文件来忽略该警告,这一方法被证明是有效的。其次,尝试指定本地库的路径,但未能解决问题。接着,尝试不使用Hadoop本地库,同样没有效果。然后,通过替换现有的Hadoop本地库,成功解决了问题。最后,根据Hadoop的源代码自行编译本地库,也达到了预期的效果。以上方法适用于macOS系统。 ... [详细]
  • 在处理 XML 数据时,如果需要解析 `` 标签的内容,可以采用 Pull 解析方法。Pull 解析是一种高效的 XML 解析方式,适用于流式数据处理。具体实现中,可以通过 Java 的 `XmlPullParser` 或其他类似的库来逐步读取和解析 XML 文档中的 `` 元素。这样不仅能够提高解析效率,还能减少内存占用。本文将详细介绍如何使用 Pull 解析方法来提取 `` 标签的内容,并提供一个示例代码,帮助开发者快速解决问题。 ... [详细]
  • Linux Shell变量初探:初始值解析与使用指南
    本文探讨了Linux Shell中变量的基本概念及其在BASH中的应用。变量是用于存储可变数据的标识符,能够代表不同的值。文章详细介绍了BASH shell的主要优势,包括强大的命令编辑能力、自动补全功能、命令别名设置、作业控制以及前后台任务管理。此外,还涵盖了编程脚本编写和通配符的使用方法,为初学者提供了全面的指导。 ... [详细]
author-avatar
欢乐的小码农
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有