时间戳(timestamp):

    通常是一个字符序列,唯一地标识某一刻的时间。数字时间戳技术是数字签名技术一种变种的应用。
定义:
    时间戳是指格林威治时间1970年01月01日00时00分00秒(北京时间1970年01月01日08时00分00秒)起至现在的总秒数。

作用:

      防篡改

      一般使用的方式就是把参数拼接,当前项目appkey,双方约定的“密钥”,加入到dictionary字典集中,按abcd顺序进行排序,最后在md5+加密.客户端将加密字符串和请求参数一起发送给服务器。服务器按照

上述规则拼接加密后,与传入过来的加密字符串比较是否相等

   防复用

        上面的方式进行加密,就无法解决防复用的问题,这时需要在客户端和服务端分别生成utc的时间戳,这个utc是防止你的客户端与服务端不在同一个时区,呵呵,然后把时间戳timestamp拼在密文里就可以了,至于防复用的有效性

各种语言获取时间戳的方法:

swift
nsdate().timeintervalsince1970
go
import (
  "time"
)
int32(time.now().unix())
java
// pure java
(int) (system.currenttimemillis() / 1000)
// joda
(int) (datetime.now().getmillis() / 1000)
javascript
math.round(new date() / 1000)
objective-c
[[nsdate date] timeintervalsince1970]
mysql
select unix_timestamp(now())
sqlite
select strftime('%s', 'now')
erlang
calendar:datetime_to_gregorian_seconds(calendar:universal_time())-719528*24*3600.
php
// pure php
time()
// carbon\carbon
carbon::now()->timestamp
python
import time
time.time()
ruby
time.now.to_i
shell
date +%s
groovy
(new date().time / 1000).intvalue()
lua
os.time()
.net/c#
(datetime.now.touniversaltime().ticks - 621355968000000000) / 10000000