- 浏览: 2652294 次
- 来自: 杭州
文章分类
- 全部博客 (1188)
- webwork (4)
- 网摘 (18)
- java (103)
- hibernate (1)
- Linux (85)
- 职业发展 (1)
- activeMQ (2)
- netty (14)
- svn (1)
- webx3 (12)
- mysql (81)
- css (1)
- HTML (6)
- apache (3)
- 测试 (2)
- javascript (1)
- 储存 (1)
- jvm (5)
- code (13)
- 多线程 (12)
- Spring (18)
- webxs (2)
- python (119)
- duitang (0)
- mongo (3)
- nosql (4)
- tomcat (4)
- memcached (20)
- 算法 (28)
- django (28)
- shell (1)
- 工作总结 (5)
- solr (42)
- beansdb (6)
- nginx (3)
- 性能 (30)
- 数据推荐 (1)
- maven (8)
- tonado (1)
- uwsgi (5)
- hessian (4)
- ibatis (3)
- Security (2)
- HTPP (1)
- gevent (6)
- 读书笔记 (1)
- Maxent (2)
- mogo (0)
- thread (3)
- 架构 (5)
- NIO (5)
- 正则 (1)
- lucene (5)
- feed (4)
- redis (17)
- TCP (6)
- test (0)
- python,code (1)
- PIL (3)
- guava (2)
- jython (4)
- httpclient (2)
- cache (3)
- signal (1)
- dubbo (7)
- HTTP (4)
- json (3)
- java socket (1)
- io (2)
- socket (22)
- hash (2)
- Cassandra (1)
- 分布式文件系统 (5)
- Dynamo (2)
- gc (8)
- scp (1)
- rsync (1)
- mecached (0)
- mongoDB (29)
- Thrift (1)
- scribe (2)
- 服务化 (3)
- 问题 (83)
- mat (1)
- classloader (2)
- javaBean (1)
- 文档集合 (27)
- 消息队列 (3)
- nginx,文档集合 (1)
- dboss (12)
- libevent (1)
- 读书 (0)
- 数学 (3)
- 流程 (0)
- HBase (34)
- 自动化测试 (1)
- ubuntu (2)
- 并发 (1)
- sping (1)
- 图形 (1)
- freemarker (1)
- jdbc (3)
- dbcp (0)
- sharding (1)
- 性能测试 (1)
- 设计模式 (2)
- unicode (1)
- OceanBase (3)
- jmagick (1)
- gunicorn (1)
- url (1)
- form (1)
- 安全 (2)
- nlp (8)
- libmemcached (1)
- 规则引擎 (1)
- awk (2)
- 服务器 (1)
- snmpd (1)
- btrace (1)
- 代码 (1)
- cygwin (1)
- mahout (3)
- 电子书 (1)
- 机器学习 (5)
- 数据挖掘 (1)
- nltk (6)
- pool (1)
- log4j (2)
- 总结 (11)
- c++ (1)
- java源代码 (1)
- ocr (1)
- 基础算法 (3)
- SA (1)
- 笔记 (1)
- ml (4)
- zokeeper (0)
- jms (1)
- zookeeper (5)
- zkclient (1)
- hadoop (13)
- mq (2)
- git (9)
- 问题,io (1)
- storm (11)
- zk (1)
- 性能优化 (2)
- example (1)
- tmux (1)
- 环境 (2)
- kyro (1)
- 日志系统 (3)
- hdfs (2)
- python_socket (2)
- date (2)
- elasticsearch (1)
- jetty (1)
- 树 (1)
- 汽车 (1)
- mdrill (1)
- 车 (1)
- 日志 (1)
- web (1)
- 编译原理 (1)
- 信息检索 (1)
- 性能,linux (1)
- spam (1)
- 序列化 (1)
- fabric (2)
- guice (1)
- disruptor (1)
- executor (1)
- logback (2)
- 开源 (1)
- 设计 (1)
- 监控 (3)
- english (1)
- 问题记录 (1)
- Bitmap (1)
- 云计算 (1)
- 问题排查 (1)
- highchat (1)
- mac (3)
- docker (1)
- jdk (1)
- 表达式 (1)
- 网络 (1)
- 时间管理 (1)
- 时间序列 (1)
- OLAP (1)
- Big Table (0)
- sql (1)
- kafka (1)
- md5 (1)
- springboot (1)
- spring security (1)
- Spring Boot (3)
- mybatis (1)
- java8 (1)
- 分布式事务 (1)
- 限流 (1)
- Shadowsocks (0)
- 2018 (1)
- 服务治理 (1)
- 设计原则 (1)
- log (0)
- perftools (1)
最新评论
-
siphlina:
课程——基于Python数据分析与机器学习案例实战教程分享网盘 ...
Python机器学习库 -
san_yun:
leibnitz 写道hi,我想知道,无论在92还是94版本, ...
hbase的行锁与多版本并发控制(MVCC) -
leibnitz:
hi,我想知道,无论在92还是94版本,更新时(如Puts)都 ...
hbase的行锁与多版本并发控制(MVCC) -
107x:
不错,谢谢!
Latent Semantic Analysis(LSA/ LSI)算法简介 -
107x:
不错,谢谢!
Python机器学习库
在大型网站中需要保存用户的会话,通常有这么几种方式:
1.把session放在应用服务器
这也是tomcat默认方式,sessionId保存在cookie,sessionStore作为文件保存在tomcat的目录。这种方式有很大的局限性就是应用是有状态的。
2.把session放在cookie
把sessionStore加密之后放在cookie,每次请求的时候从浏览器提交过来,这种方式能解决应用无状态,但也存在2个小问题。
1. cookie安全问题,只要任何人拦截到cookie就相当于获取了用户的密码。 (可以通过增加时间戳或者把用户IP地址也记录下来提高安全性)
2. 用户每次访问页面都带上cookie,带宽浪费。
3.把session放在db
这也是django默认的做法,用户每次登录的时候会产生一个sessionid,通过sessionid从数据库查询出session,如果找不到就insert一条新的,可以想象这个数据量是非常巨大,可以采用reids替换。
今天需要解决java 和python 登录互通的问题,python默认是通过cPickle序列化的,java并不能反序列化cPickle产生的数据,
一种思路就是python 通过json格式来序列化,这样java就能认识了,但发布的时候却失败了,原因第三方登录会往是session里存放一些对象,比如:
这种对象json会失败的。怎么解决呢?
方案1: 通过YAML
方案2: 通过google protocol buffer
方案3: 只把userid序列化
1.把session放在应用服务器
这也是tomcat默认方式,sessionId保存在cookie,sessionStore作为文件保存在tomcat的目录。这种方式有很大的局限性就是应用是有状态的。
2.把session放在cookie
把sessionStore加密之后放在cookie,每次请求的时候从浏览器提交过来,这种方式能解决应用无状态,但也存在2个小问题。
1. cookie安全问题,只要任何人拦截到cookie就相当于获取了用户的密码。 (可以通过增加时间戳或者把用户IP地址也记录下来提高安全性)
2. 用户每次访问页面都带上cookie,带宽浪费。
3.把session放在db
这也是django默认的做法,用户每次登录的时候会产生一个sessionid,通过sessionid从数据库查询出session,如果找不到就insert一条新的,可以想象这个数据量是非常巨大,可以采用reids替换。
今天需要解决java 和python 登录互通的问题,python默认是通过cPickle序列化的,java并不能反序列化cPickle产生的数据,
一种思路就是python 通过json格式来序列化,这样java就能认识了,但发布的时候却失败了,原因第三方登录会往是session里存放一些对象,比如:
class OAuthToken(object): """OAuthToken is a data type that represents an End User via either an access or request token. key -- the token secret -- the token secret """ key = None secret = None callback = None callback_confirmed = None verifier = None def __init__(self, key, secret): self.key = key self.secret = secret token = OAuthToken("token","38fds7979808opin7879878") print json.dumps(token)
这种对象json会失败的。怎么解决呢?
方案1: 通过YAML
方案2: 通过google protocol buffer
方案3: 只把userid序列化
发表评论
-
Raft
2018-07-12 14:20 733前言 上篇文章说解决问题要分而治之,先把分片的问题解决了再 ... -
java uuid
2017-09-14 18:18 555在java中产生uuid的方式是使用java.util.UU ... -
JAVA 编码规范
2017-09-06 11:34 406https://google.github.io/style ... -
mac 入门
2015-12-01 16:28 622http://foocoder.com/blog/wo-zai ... -
python读取图片exif信息
2014-11-06 10:53 2399f = open("/home/admin/tlo ... -
java 反编译工具gad
2014-05-09 12:04 962java 反编译工具gad,备个份。 -
java 代码大全(code book)
2014-04-29 10:59 1058参考这里: http://www.java2s.com/C ... -
Python程序的执行原理
2014-04-14 15:44 17231. 过程概述 Python先把代码(.py文件)编译成字 ... -
SQL语法解析器JSQLParser
2014-02-09 19:53 2138SQL 语法解释器jsqlparser 是用java ... -
如何创建一个短链服务
2013-12-26 16:23 0参考: http://stackoverflow.com ... -
python 解析命令参数(argument)组件argparse
2013-12-11 17:35 1400参考: http://youngsterxyf.githu ... -
BufferedInputStream 深入研究。
2013-11-19 13:26 14181. BufferedInputStream的基本原理 ... -
pyhon命令行工具optparse
2013-11-10 16:27 1028使用python optparse 可以创建命令行工具,下面 ... -
Python在豆瓣的应用
2013-10-21 10:46 1194Python在豆瓣的应用,hongqiangning分享 ... -
用python爬虫抓站的一些技巧总结
2013-10-10 14:12 1680学用python也有3个多月了,用得最多的还是各类爬虫 ... -
python小技巧
2013-10-10 11:50 7321. 声明长度256的数组 a=[0]*256 ... -
使用tesseract-ocr破解网站验证码
2013-10-09 10:25 1211原文:使用tesseract-ocr破解网站验证码 ... -
java 启动脚本
2013-08-22 19:08 976java 启动脚本 #!/bin/bash cmd=&q ... -
CRLF escape
2013-08-06 17:51 1192最近需要对用户输入的CRLF即(\r\n)做escape, ... -
安全的自增类
2013-07-22 18:16 982java中一个计数器如果超过MAX_VALUE再自增会如何? ...
相关推荐
在标题"java,php,python AES 加解密互通"中,我们关注的是使用不同的编程语言——Java、PHP和Python,实现AES(Advanced Encryption Standard)加密算法的互操作性。AES是一种广泛采用的对称加密标准,因其高效和...
一个vc6.0一个myeclipse,本帖是修复贴,原帖地址c/c++ 与java互通 AES加密解密,算法ECB/PKCS5PADDING http://download.csdn.net/download/wangsonghiweed/4328267 -来自CSDN,有童鞋反映有问题,我修复了
- **Jython**:针对Java平台的Python实现,可以在Java虚拟机上运行。 - **IronPython**:面向.NET框架的Python实现,可以利用.NET的各种特性。 ##### 版本特点与对比 - **CPython**:成熟稳定,拥有庞大的社区支持...
本文将结合个人学习心得,深入探讨Java链表的核心概念、实现方式以及与其他编程语言的互通性。 首先,链表是一种线性数据结构,与数组不同,它的元素在内存中不是连续存储的。每个元素(称为节点)包含两部分:数据...
然后,可以使用编程语言(如C、Python、Java等)中的串口库来编写通信程序。程序通常包含发送数据和接收数据两部分,发送端会按照设定的格式将数据编码并发送出去,接收端则会解码接收到的数据,并进行相应的处理。 ...
GraalVM是一个高性能的运行时环境,它支持多种语言的执行,包括Java、JavaScript,甚至其他如Python和Ruby。它的一个核心特性就是提供语言间互操作性,使得开发者可以在同一个应用程序中无缝地混合使用不同语言的...
Hprose 是高性能远程对象服务引擎(High Performance Remote Object Service Engine)的缩写。...通过 Hprose ,你就可以在这些语言之间方便高效的实现互通了。 本项目是 Hprose 的 Python 2.3+ 版本实现。
它支持多种语言如.NET、Java、Delphi、Objective-C、ActionScript、JavaScript、ASP、PHP、Python、Ruby、C++、Perl等,通过Hprose可以在这些语言之间实现方便且高效的互通。 **Hprose**的特点在于其高效的数据传输...
Java端AES/CBC/PKCS5Padding加解密代码,与Python端from cryptography.fernet import Fernet模块的加解密保持一致,两端加密后的数据互通,本代码仿照Fernet的加解密流程进行移植。
Jython允许Python代码和Java代码进行交互,并且可以被Java应用程序所调用。它的主要优势在于可以充分利用Java生态系统丰富的资源和框架。 第三种实现是***,它允许Python代码运行在.NET平台上,提供了与Jython类似...
不止python,你可以利用任何语言那实现通过...这里通过 python 作为演示来进行简单的测试,当然你也可以使用 java , php 等任何你熟悉的语言进行编码。 demo演示 其实实现起来还是比较简单的,通过小程序的 APPID 和
likeadmin是一套快速开发通用后台,基于Vue3、elementPlus,结合PHP、Java、Python、Go等主流后端语言搭建,集成用户权限、代码生成器、表单设计、岗位部门、云存储、素材中心、微信配置、API模块等一系列开箱即用...
实现这样的平台系统通常会涉及后端开发(如使用Java、Python或Node.js)、前端开发(HTML、CSS、JavaScript)、数据库设计(如MySQL、MongoDB)、移动应用开发(React Native、Swift或Java)以及服务器部署(如AWS、...
这个压缩包文件的标题和描述提及了“Rsa 私钥加密 公钥解密”,这意味着我们将探讨如何使用RSA算法进行私钥加密和公钥解密的过程,以及在不同编程语言如JAVA、C#、PHP之间的互通性。 首先,RSA加密的基础是大数因子...
这意味着你可以用Java加密数据,然后用Python或者C#解密,只要保持相同的密钥和工作模式,结果就会一致。 要深入了解这个源码,你需要打开"content.txt"查看具体的实现细节,包括加密函数的调用方式、密钥管理以及...
**MQTT(Message Queuing Telemetry Transport)**是一种轻量级的发布/订阅式消息传输协议,主要用于远程位置连接和低带宽环境,特别适合于物联网(IoT)中的设备到设备通信。在本文中,我们将深入探讨如何利用MQTT...
15. **华为CSE支持的语言**:华为CSE支持Java、Node.js、PHP和Python等多种语言的微服务接入与互通,但不支持C语言。 16. **CSE微服务全生命周期管理**:CSE提供了服务创建、CICD(持续集成/持续部署)、服务运维和...
该系统旨在帮助高校教师和学生之间实现高效便捷的毕设信息互通,解决毕业设计选题和审核过程中的工作量增加问题。 一、毕业设计选题系统的需求分析 毕业设计是高校教学管理的重要工作内容之一,在高校毕业设计数量...
编程语言是实现数字技术应用的基础工具,如Python、Java、C++等,它们被用来编写软件程序,解决实际问题。数据结构如数组、链表、树等,是高效存储和处理数据的关键,而算法则是解决问题的具体步骤,如排序算法、...
它支持众多语言,例如.NET,Java,Delphi,Objective-C,ActionScript,JavaScript,ASP,PHP,Python,Ruby,C++,Perl等语言,通过Hprose可以在这些语言之间实现方便且高效的互通。 使用Hprose制作一个简单的...