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. win7绕过开机密码攻略

    访问windows机器,经常会因为忘记了开机密码而苦恼.当然你也可以选择重装,这样最简单粗暴.如果有重要数据保存在C盘之类的(个人严重推荐不要保存到C盘),那就不是重装能解决的问题了.2014年12月 ...

  2. LintCode Minimum Path Sum

    Given a m x n grid filled with non-negative numbers, find a path from top left to bottom right which ...

  3. 使用xib文件创建集合类单元格

    UICollectionView是一种新的数据展示方式,简单来说可以把它理解成多列的UITableView.如果你用过iBooks的话,可能你还对书架布局有一定印象,一个虚拟书架上放着你下载和购买的各 ...

  4. Ionic2学习笔记

    Component nav: <ion-nav [root] = 'rootComponent'></ion-nav> ....import {Nav} from 'ionic ...

  5. SpringMVC,3种不同的URL路由配置方法

    1. 先说说一种比较常见的: <servlet> <servlet-name>theDispatcher</servlet-name> <servlet-cl ...

  6. android和linux开发环境建立(驱动层)

    流程:安装ubutu14.04操作系统==>安装各种库和应用程序并配置环境变量 1,install ubuntu14.04 为了完全释放PC机的资源,我们安装在主机上,就不用虚拟机来玩了.下面是 ...

  7. 刷题ING...

    我用codeVS刷题.. 努力准备!!

  8. Single Number

    Given an array of integers, every element appears twice except for one. Find that single one.Your al ...

  9. [THINKING IN JAVA]复用类

    7 复用类 7.1 组合 即在一个类中使用另一个类作为成员变量,这是复用了现有程序代码的功能,而非形式. 7.2 继承 关键字:extends,这种复用是形式的复用,是一种可扩展和限制的复用: 复用: ...

  10. golang,liteide设置 windows7(64)

    1.安转go的环境,exe安装包 2.下载liteide27.2.1 3.打开liteide开始开发,在里面添加gopath,无法读取windows里面的gopath设置,不知道什么原因,以管理员运行 ...