一切福田,不離方寸,從心而覓,感無不通。

Category Archives: Programming Language

C# RSA 无 长度限制 加密解密 示例

RSA 是一种非对称加密算法。由于算法特性,加密和解密过程用不同密钥,即公钥和私钥,而被广泛应用于数字证书的安全管理。 在具体应用中,公钥用加密而私钥用于解密,或 私钥用于数字签名而公钥用于签名验证。由于非对称加密算法比价复杂,耗时较长,所以一般在网络环境中RAS 被应用于 签名认证,或小数据传输,如 AES 对称密钥传输。 在.Net 框架中,默认提供的辅助类只能对密钥长度大小相同的数据进行加密解密。 此文提供C# RSA 算法示例一座优化,可以不限数据大小。此实例 仅供交流学习。 RSA 加密

RSA 解密

  from:https://blog.csdn.net/hangzhi22/article/details/53089154

龙生   16 May 2019
View Details

RSA密钥之C#格式与Java格式转换

前言 最近由于项目需求,服务端由c#编写,客户端由java编写。通信数据使用RSA非对称加密。但是java和c#生成的密钥格式是不一样的,所以需要转换格式才可以正常使用。网上搜到使用java进行格式转换的代码(如:http://blog.csdn.net/road2010/article/details/40071881 ),本文将给出一种c#的实现方法。 密钥格式 java密钥格式如下: 私钥: MIICdwIBADANBgkqhkiG9w0BAQEFAASCAmEwggJdAgEAAoGBAKSZSSEdPhv77O5ocnLNGXeQ21qJDArC1+yId+9/pY5bXkZk5vCB49EpfMwNukLv6AJqofThZPNOs1t015fdEYIUnkIc2QVxRwa0xTeFP6N8D4WQXRWs4fNG27JK5kP45s+9KlJtx5hs7G97aMczehIWpHaO6j9inOmjlU8l62KZAgMBAAECgYEAmK3TRtMwRJb33OGnn9OeFumYfy92qxi3X6Hq1o6qDBW2qkd4bImfv+ni6AinyOVuaadt2Y+lq4dKGcCVJzoZvPm1VKxD2y7xKa8/vEbPRiRTt0qnPq9T7UJkpDsiXf/zOMfWdjc3uA1bPnQ65RWHSJ7zAE+Gd7xnyCE5MEyijLECQQDVYqQWDqOVLZ5lJUuIfUIrhv26GvuoTX8v60+opCz4/Mdfh6JlefICVD6SAaYvufXBHVFY26JicNlR62ZOiBoNAkEAxXhsuEnNJNQcQHEVTPZoulbMbTV1VZIDQ1zjG8fvu8sv6IBYcR5+EsC8n3/6RkW8/iCJDzxE++VHzhoSQSoDvQJBAM6/63J/rpndAIrJ7vyJOPLJsc9/U3SH2gMJAT7KC9UXvuldlsixtf3xuEpplKbLjEUXbfklnZm586a+6XqPvoUCQDFotltOLARBBmihYuEE7qNhQHk63QbyJ9rdDP5Qgo2Mg4o7QuXa6VSr4QZPsUGQBX/YiDLFs8ULU3IgV9zyNEkCQADAYR8DctYzg0eBGdcOrDA5Szc62pYrS2wk89wUxyL4FyDL3omkVMKvtu5tccy7Xht2ikJZRqefZ3dS7ASm8/4= 公钥: MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQCkmUkhHT4b++zuaHJyzRl3kNtaiQwKwtfsiHfvf6WOW15GZObwgePRKXzMDbpC7+gCaqH04WTzTrNbdNeX3RGCFJ5CHNkFcUcGtMU3hT+jfA+FkF0VrOHzRtuySuZD+ObPvSpSbceYbOxve2jHM3oSFqR2juo/Ypzpo5VPJetimQIDAQAB   .NET密钥格式如下: 私钥:

公钥:

  转换实现代码(c#) 格式转换要用到一个开源加密库Bouncy Castle Crypto APIs,官网地址: http://www.bouncycastle.org/csharp/ 具体实现代码如下:

  from:https://www.cnblogs.com/datous/p/RSAKeyConvert.html

龙生   16 May 2019
View Details

Rsa加解密Java、C#、php通用代码 密钥转换工具

之前发了一篇"TripleDes的加解密Java、C#、php通用代码",后面又有项目用到了Rsa加解密,还是在不同系统之间进行交互,Rsa在不同语言的密钥格式不一样,所以过程中主要还是密钥转换问题,为方便密钥转换,写了一个XML和PEM格式的密钥转换工具,文章后面会提供密钥转换工具的下载地址,通过搜索参考和研究终于搞定了在Java、C#和Php都可以通用的加解密代码,整理了Rsa的加解密代码做个记录,以后可以参考,大家应该都知道Rsa算法,这里就不说明了,直接看代码(代码主要是公钥加密私钥解密,密文统一进行base64编码,密钥长度为2048): Java版本:

  C#版本:

  PHP版本:

Rsa加解密C#和Java、php使用的密钥格式不一样,这里提供一个密钥转换工具:Rsa密钥转换工具v2.0   参考 https://www.cnblogs.com/jaamy/p/6118814.html

龙生   16 May 2019
View Details

接口与抽象类的区别

一个类可以实现多个接口,但却只能继承最多一个抽象类。 抽象类可以包含具体的方法;接口的所有方法都是抽象的。 抽象类可以声明和使用字段;接口则不能,但可以创建静态的final常量。 抽象类中的方法可以是public、protected、private或者默认的pagckage;接口的方法都是public。 抽象类可以定义构造函数;接口不能。

龙生   10 May 2019
View Details

谈谈微服务中的 API 网关(API Gateway)

前言 又是很久没写博客了,最近一段时间换了新工作,比较忙,所以没有抽出来太多的时间写给关注我的粉丝写一些干货了,就有人问我怎么最近没有更新博客了,在这里给大家抱歉。 那么,在本篇文章中,我们就一起来探讨一下 API 网关在整个微服务分布式架构中的一个作用。 背景 我们知道在微服务架构风格中,一个大应用被拆分成为了多个小的服务系统提供出来,这些小的系统他们可以自成体系,也就是说这些小系统可以拥有自己的数据库,框架甚至语言等,这些小系统通常以提供 Rest Api 风格的接口来被 H5, Android, IOS 以及第三方应用程序调用。 但是在UI上进行展示的时候,我们通常需要在一个界面上展示很多数据,这些数据可能来自于不同的微服务中,举个例子。 在一个电商系统中,查看一个商品详情页,这个商品详情页包含商品的标题,价格,库存,评论等,这些数据对于后端来说可能是位于不同的微服务系统之中,可能我后台的系统是这样来拆分我的服务的: 产品服务 – 负责提供商品的标题,描述,规格等。 价格服务 – 负责对产品进行定价,价格策略计算,促销价等。 库存服务 – 负责产品库存。 评价服务 – 负责用户对商品的评论,回复等。 现在,商品详情页需要从这些微服务中拉取相应的信息,问题来了? 问题 由于我们使用的服务系统架构,所以没办法像传统单体应用一样依靠数据库的 join 查询来得到最终结果,那么如何才能访问各个服务呢? 按照微服务设计的指导原则,我们的微服务可能存在下面的问题: 服务使用了多种协议,因为不同的协议有不同的应场景用,比如可能同时使用 HTTP, AMQP, gRPC 等。 服务的划分可能随着时间而变化。 服务的实例或者Host+端口可能会动态的变化。 那么,对于前端的UI需求也可能会有以下几种: 粗粒度的API,而微服务通常提供的细粒度的API,对于UI来说如果要调用细粒度的api可能需要调用很多次,这是个不小的问题。 不同的客户端设备可能需要不同的数据。Web,H5,APP 不同设备的网络性能,对于多个api来说,这个访问需要转移的服务端会快得多 以上,就是我们构建微服务的过程中可能会遇到的问题。那么如何解决呢? 这种情况下,我们就需要一个今天要讲的这个东西, API 网关(API Gataway)。 API 网关 下面是百度上针对于 API 网关的介绍: API网关是一个服务器,是系统的唯一入口。从面向对象设计的角度看,它与外观模式类似。API网关封装了系统内部架构,为每个客户端提供一个定制的API。它可能还具有其它职责,如身份验证、监控、负载均衡、缓存、请求分片与管理、静态响应处理。 API网关方式的核心要点是,所有的客户端和消费端都通过统一的网关接入微服务,在网关层处理所有的非业务功能。通常,网关也是提供REST/HTTP的访问API。服务端通过API-GW注册和管理服务。 Chris Richardson 在他的博客中把 API 网关划分为以下两种: 单节点 API 网关 Backends for frontends 网关 单节点网关 单节点的 API网关为每个客户端提供不同的API,而不是提供一种万能风格的API。 这个网关和微软在 eShop 项目中推荐的网关是一致的。 更多详细信息我会在下文进行说明。 Backends for frontends 网关 这种模式是针对不同的客户端来实现一个不同的API网关。 落地方案 我一直在寻思一种最佳的 API 网关的落地方案,以上两种 API 网关有什么问题呢? 通常情况下, […]

龙生   07 May 2019
View Details

springboot测试的时候status(),content()方法报错

  是因为静态导入的原因,只要导入:

然后就OK了。   from:https://blog.csdn.net/qq_21549989/article/details/78873229

龙生   30 Apr 2019
View Details

PHP上传大小限制修改

PHP开发中上传是很常见也是很重要的一点,而PHP上传的大小是被限制的,为了更好的起到PHP上传的速度,我们要修改上传大小限制,好了!我们一起来看看是如何修改PHP上传限制的吧! 一般的文件上传,除非文件很小.就像一个5M的文件,很可能要超过一分钟才能上传完. 但在php中,默认的该页最久执行时间为 30 秒.就是说超过30秒,该脚本就停止执行. 这就导致出现 无法打开网页的情况. 这时我们可以修改 max_execution_time 在php.ini里查找 1 max_execution_time 默认是30秒.改为 1 max_execution_time = 0 0表示没有限制 2. 修改 post_max_size 设定 POST 数据所允许的最大大小。此设定也影响到文件上传。 php默认的post_max_size 为2M.如果 POST 数据尺寸大于 post_max_size $_POST 和 $_FILES superglobals 便会为空. 查找 post_max_size .改为 1 post_max_size = 150M 3. 很多人都会改了第二步.但上传文件时最大仍然为 8M. 为什么呢.我们还要改一个参数upload_max_filesize 表示所上传的文件的最大大小。 查找upload_max_filesize,默认为8M改为 1 upload_max_filesize = 100M 另外要说明的是,post_max_size 大于 upload_max_filesize 为佳. 更多上传文章: 在PHP程序中,常常会遇到这种问题,上传附件时明明成功上传了很多附件,如图片等,但实际上只存在20个附件,或者直接报错无法上传。 如何突破php上传多个文件的max_file_uploads限制难题 本篇文章主要介绍了禅道附件大小的限制、PHP上传文件大小限制,对于PHP教程有兴趣的同学可以参考一下。 禅道附件大小的限制、PHP上传文件大小限制 以上就是PHP上传大小限制修改的详细内容,更多请关注php中文网其它相关文章!   from:http://www.php.cn/php-weizijiaocheng-387028.html

龙生   30 Apr 2019
View Details

解决- schema_reference.4: Failed to read schema document 'http://www.springframe

http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd">  <!-- 把后面的3.x去掉 --> ——————— 作者:大道至简_lyon 来源:CSDN 原文:https://blog.csdn.net/a5601564/article/details/51585232 版权声明:本文为博主原创文章,转载请附上博文链接!

龙生   29 Apr 2019
View Details

ASP.NET Core 企业开发架构概述

企业开发框架包括垂直方向架构和水平方向架构。垂直方向架构是指一个应用程序的由下到上叠加多层的架构,同时这样的程序又叫整体式程序。水平方向架构是指将大应用分成若干小的应用实现系统功能的架构,同时这样的系统叫做分布式系统。在架构上java和.net世界都有优秀的框架支持构建垂直和水平方向架构。ASP.Net Core非常轻量且具有很高的性能,不仅适合做整体式程序,也非常适合做分布式系统。随着微服务的兴起,各种语言的混合应用是个趋势。   目录 一、 垂直方向架构 1. 多层架构 1.1 领域模型 1.2 存储仓库 1.3 服务 1.4 UI 2. 典型框架 2.1 数据存储框架 2.1.1 数据访问辅助 2.1.2 对象-关系映射 2.2 MVC 框架 2.2.1 经典MVC模式 2.2.2 后端MVC模式 2.2.3 典型框架 2.2.4 MVC模式总结 2.3 IOC框架 2.3.1 概念 2.3.2 典型注入框架 二、 水平方向架构 1. SOA架构 1.1 简洁版架构 1.2 服务的基本要素 1.3 服务治理 2. 微服务架构 2.1 简洁版架构 2.2 服务的基本要素 2.3 服务治理 3. 整体式 vs SOA架构 vs 微服务架构 4. SOA典型框架 5. 微服务典型框架 三、 总结   1. 多层架构 分层架构通过程序包或者程序的隔离构建松耦合的应用。我们以最近流行的洋葱架构模型进行分析,如图 1.1 领域模型 包括领域实体/存储接口/服务接口,是整个程序的核心。 贫血模型 如果把大量的业务逻辑委托给服务接口实现者,领域模型显得很瘦小,就可以称之为贫血模型。这种模型下的领域对象仅仅表示“状态”。“行为”(也称为逻辑、过程)放在了N层结构的Logic/Service/Manager层中。优点是易于理解和实现,缺点是随着业务发展模型会难以表达业务领域。目前不少业内软件架构是这种模式。 贫血模型的简单图示:     充血模型 如果在领域模型中实现主要的业务逻辑,把不方便实现的业务(比如汇率结算,地理坐标解析等)委托给服务接口实现者,此时领域模型显得粗壮,就可以称之为充血模型。这种模型下的领域对象既表示“状态”又有”行为“,领域对象之间还通过聚合在一个根(聚合根),然后由根对象保证状态的一致性(类似于数据库表之间的约束一致性)。优点是模型易于跟进业务发展,容易通过重构表达最新的业务领域;缺点是不易掌握。 充血模型的简单图示:     […]

龙生   28 Apr 2019
View Details

spring cloud 入门系列二:使用Eureka 进行服务治理

服务治理可以说是微服务架构中最为核心和基础的模块,它主要用来实现各个微服务实例的自动化注册和发现。 Spring Cloud Eureka是Spring Cloud Netflix 微服务套件的一部分,主要负责完成微服务架构中的服务治理功能。 本文通过简单的小例子来分享下如何通过Eureka进行服务治理: 搭建服务注册中心 注册服务提供者 服务发现和消费 ==========我是华丽的分割线======================== 一、搭建服务注册中心   先列出完整目录结构:    搭建过程如下: 创建maven工程:eureka(具体实现略) 修改pom文件,引入依赖

创建启动类

配置application.properties文件

启动服务并访问,我们会看到这样的画面:  二、注册服务提供者 先列出完整目录结构: 搭建过程如下: 创建maven工程:hello-service(具体实现略) 修改pom文件,引入依赖

创建启动类

创建controller

配置application.properties文件

启动并测试 )启动后再hello-service的控制台会有这种字样(xxx代表你的PC名)

eureka的控制台会打印出如下字样(xxx代表你的PC名)

)再次访问localhost:1111,会发现有服务注册到注册中心了  三、服务发现和消费 完整目录结构如下: 搭建过程: 创建maven工程(具体实现略) 修改pom文件,引入依赖

创建启动类

创建controller

配置application.properties文件

启动,测试 )启动eureka。为了展示负责均衡的效果,我们的hello-service启动两个服务,启动两个服务的具体步骤如下 以上是hello-service1的启动步骤,端口号为9090;同样方法设置hello-service2,端口号为9091(具体实现略)。 )启动hello-consumer )再次访问http://localhost:1111/,会发现有2个hello-service服务(端口号一个是9090,一个是9091),1个hello-consume服务 )   多次访问http://localhost:9999/hello-consumer,会发现hello-service1和hello-service2会轮流被调用(已经实现了负责均衡),可以通过两者的控制台打印内容确认(还记得我们在hello-service的controller中有个loggerlogger.info("*********" + instance.getServiceId());吗?对,就是这个打印)   四、总结 以上实例实现了基本的服务治理: 通过spring-cloud-starter-eureka-server和@EnableEurekaServer实现服务注册中心 通过spring-cloud-starter-eureka和@EnableDiscoveryClient使用并注册到服务注册中心 通过spring-cloud-starter-eureka和@EnableDiscoveryClient使用注册中心并发现服务,通过spring-cloud-starter-ribbon来实现负载均衡消费服务 PS:这里说明下,我用的IDE是Spring Tool Suite,是spring定制版的eclipse,方便我们使用spring进行开发,有兴趣的朋友可以自行百度了解下。   from:https://www.cnblogs.com/sam-uncle/p/8954401.html

龙生   24 Apr 2019
View Details
1 71 72 73 176