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. Qt线程(4) 降低线程占用CPU

    问题描述: 一般将计算量大的处理过程单独放置到一个单独的线程处理,因此很有可能你的处理过程需要while(1)或类似的操作. 也因此很有可能造成线程在处理时计算机CPU占用过高的情况. 解决办法: 降 ...

  2. php读取json时无数据(为空)的解决方法

    在使用PHP调用一些json接口文件时 如果使用 file_get_contents 获取页面json数据后 再使用json_decode()解析后 数据无法正常输出 这是的返回值为null 这是由于 ...

  3. Word Break

    Given a string s and a dictionary of words dict, determine if s can be segmented into a space-separa ...

  4. sublime上安装c/c++代码分析工具 sublime Linter - cppcheck

    项目官方说明 sublime Linter - cppcheck 理解下sublime Linter - cppcheck, 它是插件的插件,sublime的插件sublimeLinter的插件.网络 ...

  5. 最小生成树——prim算法

    prim算法是选取任意一个顶点作为树的一个节点,然后贪心的选取离这棵树最近的点,直到连上所有的点并且不够成环,它的时间复杂度为o(v^2) #include<iostream>#inclu ...

  6. java中文乱码分析整理

    在JavaWeb应用开发中,经常会出现页面中本该显示中文的地方却是乱码的情况.究其原因,主要是由于在Web组件之间.或Web组件与浏览器.与数据库所使用的字符集标准不统一,Web应用程序运行过程中,中 ...

  7. [课程设计]Scrum 1.5 多鱼点餐系统开发进度

    1.团队名称:重案组 2.团队目标:长期经营,积累客户充分准备,伺机而行 3.团队口号:矢志不渝,追求完美 4.团队选题:餐厅到店点餐系统WEB 5.Sprint 1时间:11.14-11.23 重案 ...

  8. JavaScript数据类型之隐式类型转换

    JavaScript的数据类型分为七种,分别为null,undefined,boolean,string,number,object,symbol ( ECMAScript 2015新增).objec ...

  9. C# 隐式类型转换

    implicit(C# 参考) implicit 关键字用于声明隐式的用户定义类型转换运算符.如果可以确保转换过程不会造成数据丢失,则可使用该关键字在用户定义类型和其他类型之间进行隐式转换. clas ...

  10. SpringMVC 请求路径结尾存在.使用@PathVariable访问路径内容,路径参数获取不准确的问题

    SpringMVC采用Get方式请求资源时,如果请求路径的结尾中带有小数点(.)时,同时使用@PathVariable访问路径内容时,请求路径中最后一个小数点及其后面的内容会被Spring截断丢弃比如 ...