1、Base64非常适合http、mime协议,所以在一些类似webservice中可以用Base64。

  用法如下:传出去之前先 Convert.ToBase64String(encryptedBytes)

       接收方则 Convert.FromBase64String(sourceString)

2、公钥私钥加密解密,这个网上很多,可以自己去找一下,但如果要和Base64搭配使用,要注意两点:

  1、Base64的长度是有限制的

  2、建议先对文本做加密处理,在最外面再做Base64处理。

3、URLEnCode,对url进行转码,

  3.1、数字和字母不变,中文会变化。
  3.2、空格变为"+"号。
  3.4、其他被编码成"%"加上他们的ascii的十六进制,规律是这样的。
4、URLDeCode,对url进行解码,
  方法一:如果是页面解码,其实Request.QueryString()会自动做解码的动作。无需再写一遍URLDeCode。
  方法二:如果是其他地方调用,如Andriod调用.net的WebService,则需要做一次解码的动作。
 
 
最近在做的一个项目遇到类似的情况,.net写了一个WebService,其他网站调用这个WebService,同时手机端也在调用这个WebService,处理的情况是不一样的,具体的设计思路如下:
1、网站和手机端调用的方法是不一样的,网站调用的Webservice不需要做URLDecode,手机端调用的则需要做URLDecode
2、WebService中,针对一个要传递的文本先做公钥加密,然后处理成base64。代码如下(代码不贴全,只做一个参考)
        #region 公钥加密/私钥解密 (不限长string)

        public static string EncryptWithPublicKey(string sourceString)
{
var sourceBytes = Encoding.UTF8.GetBytes(sourceString);
var encryptedBytes = EncryptWithPublicKey(sourceBytes);
var encryptedString = Convert.ToBase64String(encryptedBytes);
return encryptedString;
} public static string DecryptWithPrivateKey(string sourceString)
{
var sourceBytes = Convert.FromBase64String(sourceString);
var decryptedBytes = DecryptWithPrivateKey(sourceBytes);
var decryptedString = Encoding.UTF8.GetString(decryptedBytes);
return decryptedString;
} #endregion 公钥加密/私钥解密(不限长string)

3、网站调用时直接用var str = Request.QueryString["str"]这个即可,不再需要Decode了, Request.QueryString会自动解码。

4、Android则需要先DeCode。

5、在3、4的基础上继续做Base64处理,私钥解密等处理,见代码中的DecryptWithPrivateKey详情。

关于URLEnCode,URLDeCode,Base64,公钥私钥的更多相关文章

  1. 终端命令对字符串进行sha1、md5、base64、urlencode/urldecode

    sha1.md5.base64 mac $ echo -n foo|shasum 0beec7b5ea3f0fdbc95d0dd47f3c5bc275da8a33 - $ 2c26b46b68ffc6 ...

  2. PFX文件提取公钥私钥

    jks是JAVA的keytools证书工具支持的证书私钥格式.pfx是微软支持的私钥格式. cer是证书的公钥. 如果是你私人要备份证书的话记得一定要备份成jks或者pfx格式,否则恢复不了. 简单来 ...

  3. PHP中使用OpenSSL生成RSA公钥私钥及进行加密解密示例(非对称加密)

    php服务端与客户端交互.提供开放api时,通常需要对敏感的部分api数据传输进行数据加密,这时候rsa非对称加密就能派上用处了,下面通过一个例子来说明如何用php来实现数据的加密解密 先了解一下关于 ...

  4. RSA-演变过程、原理、特点(加解密及签名)及公钥私钥的生成

    本篇是iOS逆向开发总结的第一篇文章,是关于iOS密码学的相关技术分析和总结,希望对大家有所帮助,如果有错误地方欢迎指正. 一.前言 密码学的历史追溯到2000年前,相传古罗马凯撒大帝为了防止敌方截获 ...

  5. 使用公钥私钥加密实现单点登录(SSO)

    Oauth2+Gateway+springcloud+springcloud-alibaba-nacos+jwt ,使用公钥私钥加密实现单点登录(OSS) github地址点这里 注意事项 GET: ...

  6. .net core中使用openssl的公钥私钥进行加解密

    这篇博文分享的是 C#中使用OpenSSL的公钥加密/私钥解密 一文中的解决方法在 .net core 中的改进.之前的博文针对的是 .NET Framework ,加解密用的是 RSACryptoS ...

  7. 公钥私钥 ssl/tsl的概念

    一,公钥私钥1,公钥和私钥成对出现2,公开的密钥叫公钥,只有自己知道的叫私钥3,用公钥加密的数据只有对应的私钥可以解密4,用私钥加密的数据只有对应的公钥可以解密5,如果可以用公钥解密,则必然是对应的私 ...

  8. WP8.1 RSA 加解密实例(导入公钥私钥)

    因项目上需要用到,之前在WP8.0的环境上调试通过,现在在开发8.1时发现已不支持原来的加密库,所以无法使用以前的方法,不得已,去寻找windows命名空间下RSA的加解密方法,经过几天的尝试,将解决 ...

  9. OpenSSL与公钥私钥证书签名的千丝万缕

    导语 人对任何事物的认识都是阶段性的,从无知到知晓,从懵懂到半知半解,从误解到将信将疑,从晕头转向到下定决心吃透. 介绍 OpenSSL是一个强大的命令行工具,它可以用来处理许多种跟PKI(Publi ...

随机推荐

  1. 用python+selenium抓取微博24小时热门话题的前15个并保存到txt中

    抓取微博24小时热门话题的前15个,抓取的内容请保存至txt文件中,需要抓取排行.话题和阅读数 #coding=utf-8 from selenium import webdriver import ...

  2. 带head的gridview

    这是github上的一个项目,根据谷歌的那个HeadGridView改的,因为谷歌的那个addHeadView后宽度不能填充屏幕,下面是代码. 来源:https://github.com/liaohu ...

  3. 【 D3.js 入门系列 --- 5.1 】 做一个带坐标轴和标签的图表

    前面几节讲解了图标.坐标轴.比例等等,这一节整合这些内容做一个实用的图表.结果图如下: 代码如下所示: <html> <head> <meta charset=" ...

  4. Scrollview嵌套listview

    //建立Scrollview类 public class MyScrollView extends ScrollView { public MyScrollView(Context context, ...

  5. angular2 笔记

    动态添加一个component: import { ViewContarinerRef, Component, ComponentFactoryResolver, ViewChild } from ' ...

  6. 9本java程序员必读的书(附下载地址)

    本文列出的9本书在Java程序员界都是被认为很棒的书.当一个程序员开始初学Java时,他的第一个问题应该是如何选择一本书来作为指导学习Java.这个问题也就表明,相对于其他的教程和博客,Java书籍还 ...

  7. Object有哪些公用方法?

    protected Object clone() 创建并返回此对象的一个副本.public boolean equals(Object obj) 指示其他某个对象是否与此对象"相等" ...

  8. Robot Test Framework + Selenium 的几个坑

    现有的webtest是基于Robot 和 Selenium 来写的,没出问题的时候还挺好的,出了问题想debug介个麻烦啊(也可能是姿势不对), 特罗列如下,如有不对,求指正,指导. 1. RIDE ...

  9. Ajax在html页面获取后台XML文件资源

    一.准备工具 站长吧ASP调试工具.exe,这个工具是为了快速建立asp环境,方便调试. 二.建立文件夹 1.建立网站根文件夹,名字随意,将站长吧ASP调试工具.exe复制到根文件夹: 2.建立xml ...

  10. mysql 5.7修改密码

    关闭正在运行的 MySQL : [root@www.woai.it ~]# service mysql stop 运行 [root@www.woai.it ~]# mysqld_safe --skip ...